【问题标题】:Observable Array doesn't reset in Knokcout可观察数组不会在 Knokcout 中重置
【发布时间】: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


【解决方案1】:

您确定您的数组在removeAll() 之后不为空吗?

测试将是self.myArray().length === 0:

const test = ko.observableArray([1,2,3]);

console.log(test().length);

test.removeAll();

console.log(test().length);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

【讨论】:

    猜你喜欢
    • 2015-10-05
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2013-05-30
    • 2015-08-11
    相关资源
    最近更新 更多