gpt4 book ai didi

backbone.js 设置模型数组属性

转载 作者:行者123 更新时间:2023-12-03 07:28:50 24 4
gpt4 key购买 nike

我有一个backbone.js模型,其中一个数组作为属性:

defaults: {
myArray : [0,1,2]
}

我正在尝试设置特定索引的值。

var myIndex = 1;
myModel.set({"myArray"[myIndex] : newVal}); //doesn't work
myModel.set({"myArray[myIndex]": newVal}); //doesn't work
myModel.set({"myArray" + "[" + myIndex + "]": newVal}); //doesn't work

获取/设置数组属性的正确语法是什么?谢谢。

最佳答案

您尝试的语法不起作用,因为发送到 set 方法的参数是对象文字。 : 左侧的值被视为文字名称,而右侧的值可以执行/解释代码。

不过,您可以做一些事情:

获取、更新和设置整个数组:

var a = myModel.get("myArray");
a[0] = 5
myModel.set("myArray", a);

myModel.get("myArray"); //=> [5, 1, 2]

这样做的优点是您可以获得从模型激发的标准“更改”事件,因为您正在模型上设置属性的值。

另一种方法是使用 get 来简化该过程,并直接更新数组:

myModel.get("myArray")[0] = 5
myModel.trigger("change");
myModel.trigger("change:myArray");

myModel.get("myArray"); //=> [5, 1, 2]

这里的缺点是这不会触发“change”事件,因为您没有调用 set 方法。因此,如果您需要这些事件,您必须自己触发它们,正如我所展示的。

关于backbone.js 设置模型数组属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7325004/

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