【发布时间】:2014-10-01 09:18:59
【问题描述】:
使用 Knockout JS 设置可见:对可观察数组中的项目进行数据绑定。有没有一种方法可以在 Knockout JS 中计算特定于可见数据绑定 = true 的项目数?
我尝试过这样的事情(不工作):
var visibleItems = ko.utils.arrayFilter(self.MyItems(), function(item) {
return item.visible == true;
});
var result = visibleItems().length;
在这个测试中,item.visible 是未定义的。这就是我要找的东西,我怎样才能获得与他们的“data-bind=visible:”相对应的 Knockout JS 的可见状态属性值:在项目中的某个地方可以访问吗?
【问题讨论】:
-
item.visible是observable还是只是普通属性(即您需要item.visible() == true)? -
上面的代码不起作用,item.visible 是未定义的,这就是我真正要问的。在我的 html 代码中,我说的是 data-bind="visible:blah"。如何在我的 ko.computed observable 中获得淘汰赛 js“可见”属性?当然,它必须可以在其 API 中的某个地方访问
-
您为什么要访问可见绑定而不是“blah”,这是您绑定的,并且可能是您自己的 javascript 对象之一的可观察属性?
-
我正在尝试获取可见对象的总数。我用几个不同的过滤器来操作它。
-
听起来在你的根视图模型上拥有
visibleItems计算数组并绑定到它可能更容易,而不是显示所有项目并为每个项目设置可见绑定。然后它的长度将始终与显示的项目数匹配。
标签: knockout.js