L'attribution des valeurs de ko observables déterminée dynamiquement par nom de chaîne
J'ai deux questions svp:
Je suis en utilisant le knock-out (je suis un KO noob sry) et je voudrais assigner une valeur à un knock-out spécifique observables lors d'un événement de clic, mais qui devrait être déterminée sur la cliquez sur l'événement lui-même (et de la valeur que je vais passer à la data-bind=clic)...peut-il être fait s'il vous plaît...puis-je obtenir le knock-out observables variable juste sur son nom (une chaîne de valeur) au lieu d'avoir à savoir qui observables je vais être affectation d'une valeur à l'avance?
Et, d'autre part moins immportant, si une telle fonction ko.ObservableByName(stringName) existe est il possible de l'utiliser d'une certaine façon et affecter la pré-sélection de plusieurs de sélectionner des éléments sur chargement de la page..et comment s'il vous plaît?
J'ai essayé de le faire...j'ai utilisé data-bind="cliquez sur: loadData.bind($data, 'param1', 'param2')" et puis je suis en mesure d'obtenir les param1 et param2 chaîne de valeurs par la construction d'un gestionnaire d'événement dans ma knock-out viewmodel qui va quelque chose le long de la ligne de:
self.loadData = function (src, dest) {
//dest is 'param1', src is 'param2', both are stings
if (src == 'param1')
self.p1observable($('#' + dest).val());
else
self.p2observable($('#' + dest).val());
}
Mon plus gros problème c'est que j'ai pour construire la fonction p1/p2 observables déjà spécifié et codé en dur dans ça, mais vraiment, j'aimerais apprendre le param1 et param2 pour être utilisés comme noms ou références par nom de certains de mes observables, que je pourrais alors passer à volonté (à côté de, soit une valeur à attribuer, ou mieux encore un autre observable je voudrais copier la valeur à partir de la première), et donc j'ai pu affecter passé dans les valeurs de la fonction de clic appeler directement observable de mon choix (et ne pas avoir un grand nombre de ces petites fonctions)...
Je vais peut-être à de la mauvaise façon? Peut-être que je ne devrais pas être en train de passer dans la chaîne de valeurs à tous... je devrais Peut-être essayé de la passer dans un objet observé, mais comment peut-on le faire à l'intérieur de data-bind, ne vous venez d'écrire myViewModel.myObservable ou quelque chose comme ça?
OriginalL'auteur dada | 2012-01-18
Vous devez vous connecter pour publier un commentaire.
Si vous avez votre objet parent, alors vous pouvez accéder à une observable en utilisant cette syntaxe:
viewModel[observableName]
et définir la valeur comme:
viewModel[observableName](newValue)
Voici un exemple où vous pouvez choisir le nom de la propriété à partir d'une liste déroulante et puis définissez la valeur en conséquence, et une autre où le bouton est lié directement à l'établissement d'une observable/valeur: http://jsfiddle.net/rniemeyer/CTnUQ/
OriginalL'auteur RP Niemeyer