Passer des valeurs à ko.computed dans Knockout JS
J'ai travaillé un peu avec MVC4 SPA, avec knockoutJs,
Mon problème est que je veux passer d'une valeur à une ko.calculée. Voici mon code.
<div data-bind="foreach: firms">
<fieldset>
<legend><span data-bind="text: Name"></span></legend>
<div data-bind="foreach: $parent.getClients">
<p>
<span data-bind="text: Name"></span>
</p>
</div>
</fieldset>
</div>
self.getClients = ko.computed(function (Id) {
var filter = Id;
return ko.utils.arrayFilter(self.Clients(), function (item) {
var fId = item.FirmId();
return (fId === filter);
});
});
Je veux simplement afficher le Firmname comme en-tête, puis cliquez sur afficher les clients ci-dessous.
La fonction est appelée, mais l'Id n'est pas défini (j'ai essayé avec 'Entreprise ainsi), si je change:
var filter = id; TO var filter = 1;
Il fonctionne très bien,
Alors... Comment passer d'une valeur à une ko.est-il calculé? Il n'a pas besoin d'être l'Id, il peut aussi être le Cabinet d'objet, etc.
Merci d'avance.
source d'informationauteur Wondermoose
Vous devez vous connecter pour publier un commentaire.
Chaque entreprise devrait vraiment être contenant une liste de clients, mais vous pouvez utiliser une fonction régulière, je pense, et transmettre l'entreprise:
Puis en html, $data) est le modèle actuel, dans votre cas, la firme:
Knock-out n'est pas de vous permettre de vous passer de rien à une fonction calculée. Ce n'est pas ce qu'il est pour. Vous pourriez aussi utiliser une fonction régulière de là, si vous le souhaitez.
Une autre option est d'avoir les données qui sont déjà dans le jeu de données sur lequel vous avez fait le premier foreach. De cette façon, vous n'utilisez pas
$parent.getClients
mais plus comme$data.clients
.