Comment mettre à jour jstree valeurs de nœud sans recharger
J'ai un jstree que j'ai créé avec le code suivant:
$('#mytree').jstree({"core": { "data" : value
, "themes" : { "dots": false
, "icons": false }
}
}
);
Je peux le reconstruire avec de nouvelles données par le présent code:
$('#mytree').jstree(true).settings.core.data = new_data;
$('#mytree').jstree(true).refresh();
mais il peut être coûteux lorsque vous avez un grand nombre de nœuds. Ce que je voudrais, c'est que je voudrais mettre à jour la valeur des éléments (par exemple, la node.text
partie), sans reconstruction de l'ensemble de l'arbre. Je reçois les nouvelles valeurs via websocket dans un message (la chaîne JSON qui sera le new_data
), mais la structure n'est pas en train de changer. Comment puis-je le faire? Merci!!!!
OriginalL'auteur Gabor Meszaros | 2014-10-23
Vous devez vous connecter pour publier un commentaire.
Ce dont vous avez besoin n'est pas
refresh()
maisredraw()
donc le code estVous pouvez trouver les fonctions dans le jstree API.
Comme par zmirc suggestion, en v3.1 utilisation:
J'ai essayé de l'utiliser et il semble fonctionner mais l'état des objets ne semble pas être mis à jour. Est-il possible de forcer le nouveau attiré l'arbre pour se conformer à l'état des options fournies dans le new_data?
OriginalL'auteur Gabor Meszaros
pour la suppression du nœud et de le recharger arbre
pour ceux qui ont besoin de redessiner sans redémarrer l'arbre de l'utilisation
OriginalL'auteur baaroz
$('#mytree').jstree(true).refresh();
est de travail, mais dans mon cas, il provoque fil de fuite.
chaque actualisation ajoute un fil plus
OriginalL'auteur Shlomi Aharoni