Knockout js - 带有否定的可见绑定不起作用

时间:2014-01-28 03:56:58

标签: javascript knockout.js

我试图使用带有否定的可见数据绑定,但它似乎不起作用。 我在stackoverflow中发现了几个问题,指出NOT绑定应该用作表达式。但在我的情况下,我只是使用长度属性,所以我不知道如何使用表达式。这是我的例子

<div class="form-group" data-bind="visible:!users.length == 0">
<span>Some message here...</span
</div>

<div class="form-group" data-bind="visible:users.length > 0">
<span>User data grid here...</span
</div>

1 个答案:

答案 0 :(得分:4)

我猜users是一个observableArray,因此你应该这样做:

data-bind="visible:users().length !== 0"

更好,更清晰的意图是在视图模型上创建一个计算属性,然后绑定到该模型:

showUsers = ko.computed(function(){

   return _this.users().length > 0;

});

然后您的绑定变为:

data-bind="visible:showUsers"

或者

data-bind="visible:!showUsers()"

以下是使用各种技术的jsFiddle showing a full example