Mon scénario de problème est presque identique à this one mais la table que je dessine contient des cellules TD avec des liaisons plus complexes, chaque liaison étant unique à la colonne étant liée. Parfois, c'est juste le HTML qui est unique.Cause Knockout pour redessiner les colonnes de données en fonction des modifications apportées à mon modèle de colonne lors de l'utilisation des nœuds tempate
En d'autres termes, il est pas assez bon pour boucler les colonnes à l'aide d'un databind=foreach
et simplement un nid <TD> qui fait un text
obligatoire.
je peux obtenir ma table pour rendre le tirage au sort de la première page, en utilisant un template{nodes:xxx}
de liaison, où je passe dans un tableau de noeuds DOM .. comme ceci:
<table>
<thead>
<tr>
<!-- ko foreach: ColumnModel.VisibleColumns -->
<th data-bind="click:$root.ColumnModel.ColumnSortClick,text:ColName"></th>
<!-- /ko -->
</tr>
</thead>
<tbody>
<!-- ko template: { nodes: ColumnModel.getRowTmplNodes(), foreach: DataItems} -->
<!-- /ko -->
</tbody>
</table>
La documentation indique que les DOM nœuds vous passer à cette variable ne doit pas être un observableArray. Ainsi, comme vous pouvez l'imaginer, lorsque j'autorise les utilisateurs à mettre à jour le modèle de colonne, seules mes étiquettes d'en-tête changent dans le < THEAD>, mais les colonnes de données ne sont pas mises à jour.
Que dois-je faire?
Ok, je trouve un moyen de faire ce travail, et passé de l'utilisation de la liaison 'template' à un gestionnaire de liaison personnalisé [merci à Michael Best] (https: //groups.google.c om/forum/#! searchin/knockoutjs/template $ 20nodes% 7Csort: pertinence/knockoutjs/dsikE_EAzjo/zGKuaB3thvYJ) – bkwdesign
Vous pouvez publier cette réponse et l'accepter. – Nisarg