【发布时间】:2019-01-05 00:00:04
【问题描述】:
我有一个可观察的数组:
self.myArray = ko.observableArray([1234]);
我正在尝试以两种不同的方式清除可观察数组:
self.myArray([]) // Step X
self.myArray.removeAll() // Step X
但是值没有被清空,然后我必须执行:
self.myArray = ko.observableArray([]); // Step Y
步骤 X 和步骤 Y 一样吗?
【问题讨论】:
-
步骤 X 与步骤 Y 不同。在步骤 X 中,您使用之前创建的相同 observableArray,而在步骤 Y 中,您只是将一个新的 observableArray 分配给您的 self.myArray。这意味着如果您绑定到 myArray,然后您执行步骤 Y,但您的绑定仍将绑定到以前的 observableArray。所以你不应该使用步骤 Y,步骤 X 是正确的。也许它没有被清空的原因是你不止一次调用 self.myArray = ko.observableArray([1234]) ?
标签: javascript knockout.js computed-observable