我正在尝试在我的视图模型中重置一个knockout observable数组,以便不包含任何东西,但我在每一个回合都被镶嵌着石墙。定义后,我将其设置为空:
self.currentPeople = ko.observableArray([]);
然而,如果我试图在页面上改变它:
self.currentPeople.removeAll();
我得到例外:
Uncaught TypeError: undefined is not a function
即使我进行安全检查以确定它是否存在然后进行设置:
if (self.currentPeople ) {
self.currentPeople.removeAll();
} else {
self.currentPeople = ko.observableArray([]);
}
我仍然收到同样的错误。我做错了什么?
答案 0 :(得分:1)
如果通过包含任何内容并且清除数组,则表示只包含一个空数组:
self.currentPeople([]);
旁注,用
进行测试if(someObservable)
将始终返回true,以测试它是否包含任何使用" someObservable()"。这将获得observables值而不是包装器。 我很困惑,但是self.currentPeople.removeAll()会抛出一个错误,如果上面的解决方案不适合你,你可以发布更多的代码,并澄清你需要什么吗?
我知道这个答案的一半应该是一个评论,但我还没有代表这样做。
答案 1 :(得分:-1)
您需要' de-reference'你的可观察数组是self.currentPeople().removeAll()