knockout.js changement de statut de visibilité basé sur si le tableau est vide ou pas
Je veux être en mesure d'avoir un tableau montrent que si il y a des éléments dans un tableau. J'ai simplifié mes besoins à un jsfiddle exemple.
JS:
var view_model = {
lines: ko.observableArray([
{
content: 'one'},
{
content: 'two'},
{
content: 'three'},
{
content: 'four'},
]),
remove: function(data) {
view_model.lines.remove(data);
}
};
ko.applyBindings(view_model);
HTML:
<span data-bind="visible:lines">Lines Exist</span>
<ul data-bind='foreach:lines'>
<li>
<button data-bind="click:$parent.remove">
Remove
</button>
<span data-bind="text:content"></span>
</li>
</ul>
Fondamentalement, j'ai une application web où les lignes peuvent être supprimées du tableau. Si array.length == 0
, je veux cacher la totalité de la table.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire de plusieurs façons. Le violon ci-dessous utilise la containerless liaisons à masquer l'ensemble de la table si les lignes de tableau n'a pas d'entrées.
http://jsfiddle.net/johnpapa/WLapt/4/
data-bind="visible:lines"
qui ne fonctionne pas maintenant. Vérifiez votre violon.data-bind="visible:lines().length"
fonctionne, mais est moins élégant :/Une autre solution, une légère variation de l'original de votre tentative:
Il est considéré comme une mauvaise pratique pour ajouter de la logique du modèle html.
Je suggère cette solution:
si vous souhaitez afficher un message ou une image comme ceci jsfiddle exemple
si vous voulez masquer le message lors de la table de lignes de données est apparu avec succès