J'ai un contrôle utilisateur qui permet aux utilisateurs ont fourni leurs propres noms de script qui sont appelés par le contrôle sur les événements spécifiques.JavaScript - Comment appeler une fonction à partir d'un nom de chaîne et passer un objet tableau?
J'ai le code suivant:
initialize : function()
{
// Call the base initialize method
Point74.WebAutoComplete.callBaseMethod(this, 'initialize');
$(document).ready(
Function.createDelegate(this, this._onDocumentReady)
);
},
_onDocumentReady : function()
{
var me = this;
$("#" + me.get_id()).autocomplete(me.get_ashxAddress(),
{
formatItem: function(item)
{
return eval(me.get_formatFunction() + "(" + item + ");");
}
}
).result(me.get_selectFunction());
}
me.get_formatFunction contient le nom d'une fonction, à savoir "FormatItem". Cet exemple utilise actuellement eval, que je ne veux pas utiliser ... ainsi que cet exemple ne fonctionne pas de toute façon, mais je pensais que je montre ce que je veux en venir.
Dans l'exemple ci-dessus, je reçois une valeur erreur non définie comme « élément » est un tableau de chaînes et eval tente de le convertir en une longue chaîne.
Comment puis-je obtenir cette fonctionnalité tout encore être autorisés par « article » comme un tableau de chaînes à la fonction nommée?
Si le passage des fonctions nommées est une mauvaise idée, sont-il des alternatives?
Voici comment mon contrôle est déclaré:
<p74:WebAutoComplete runat="server" ID="ato_Test" AshxAddress="WebServices/SearchService.ashx"
FormatFunction="formatItem" SelectFunction="searchSelectedMaster" />
Combien de fois par semaine est-ce que cela va être demandé? Première dup: http://stackoverflow.com/questions/359788/javascript-function-name-as-a-string –
Une autre dup: http://stackoverflow.com/questions/1144297/ways-to-call-a- javascript-function-using-the-value-of-a-string-variable/1144334 # 1144334 –