Récursive du modèle avec knock-out js
Est-il possible de créer un modèle récursif seulement avec knock-out js?
J'ai un knock-out de l'objet:
function FormElementNode(children, text, value) {
var self = this;
self.children = ko.observableArray(children);
self.text = ko.observable(text);
self.value = ko.observable(value);
}
enfants est un tableau de FormElementNode.
Je veux l'attirer et ce sont les enfants de façon récursive dans une hiérarchie de la liste de nœuds:
<ul>
<li>Parent text value:
Children:
<ul>
<li>Child1 text value</li>
<li>Child2 text value</li>
</li>
Merci!
Vous devez vous connecter pour publier un commentaire.
Oui knock-out prend en charge récursive des modèles de sorte que vous pouvez de référence et de rendre le même modèle à l'intérieur du modèle.
Un exemple de code html dans votre cas devrait ressembler à ceci:
Démo JSFiddle.
foreach
problème: je pense que vous devriez vous poser une autre question où vous montrez votre code problématique. Sur le<ul>
j'ai juste donné un petit échantillon si vous avez des besoins spécifiques, vous pouvez jouer avec elle lorsque vous mettez votreul
,li
autour de votre modèle: jsfiddle.net/KtbXb/1foreach
question, quand j'ai enlevé le trait de soulignement code de l'erreur a disparu 🙂Je pense, j'ai un peu de meilleure solution avec pas de la racine de l'arbre. Veuillez prendre un coup d'oeil:
http://jsfiddle.net/nonsense66/Bzekr/
Modèle:
Javascript:
Espère que cela aide!
Ce post a été d'une grande aide pour moi. Je suis toujours à la recherche de nouvelles façons d'utiliser les huitièmes de finale. Je voulais juste ajouter une modification qui est en train de faire exactement ce que nemesv proposé uniquement à l'aide de la ko.plugin de cartographie.
Comme démontré dans cette jsFiddle.
Récursive Liaison Personnalisée
Une autre solution, après avoir lu que les modèles ont été plus lents, je suis à la recherche d'aller avec récursive de liaison.
<ul data-bind="nestMe: name"></ul>
Avoir la possibilité de jouer avec les données avant la récursivité devrait venir dans maniable.
JSFiddle