gpt4 book ai didi

javascript - 未捕获错误 : Assertion Failed: You must use Ember. set() 设置

转载 作者:行者123 更新时间:2023-11-28 00:42:05 25 4
gpt4 key购买 nike

将 ember-cli 更新到 0.1.5 后,我收到一个新错误。

 var radioList = this.get('radioList').slice(0);
radioList.forEach(function (item) {
item.isSelected = false;
});
this.set('radioList',radioList);

正在观察 radioList 属性。然而,在上面的场景中,它被切片,这基本上是创建它的新副本。为什么我还是会收到以下错误?

Uncaught Error: Assertion Failed: You must use Ember.set() to set the isSelected property (of [object Object]) to false.

最佳答案

However in the above scenario it is being sliced which is basically creating a new copy of it.

您正在通过调用 slice 方法创建数组的副本,但这不是“深层复制” - 原始数组和副本数组中的对象是相同的。您可以在 Chrome/FF 控制台中查看:

var array = [{ field: 1 }];
var slicedCopy = array.slice(0);
slicedCopy[0] === array[0]; // => true

我没有很深入地探索 ember 的 slice 版本,但即使在你的情况下进行深度复制也有可能会导致相同的结果。因此,只需使用 Ember.set 在 ember 应用程序中设置值即可。 :)

关于javascript - 未捕获错误 : Assertion Failed: You must use Ember. set() 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com