gpt4 book ai didi

javascript - 为什么模型 ID 没有保留在集合中?

转载 作者:行者123 更新时间:2023-11-28 09:39:23 25 4
gpt4 key购买 nike

我为我的模型设置 ID,如下所示:

var globalCounter = 0;
var MyModel = Backbone.Model.extend({
initialize: function () {
this.set('id', globalCounter);
globalCounter += 1;
}
});

现在我将一堆 MyModel 实例添加到集合中:

var i, model;
MyCollection = Backbone.Collection.extend({});
myCollection = new MyCollection();

for(i = 0; i < 3; i += 1) {
model = new MyModel();
myCollection.add(model);
}

问题是 ID 似乎没有被传递:

console.log(myCollection.pluck('id')); // gives [undefined, undefined, undefined]

为什么我添加到收藏中的模型 ID 消失了?

最佳答案

您在定义 MyModel 的位置定义了 globalCounter,但创建 MyModel globalCounter 实例的位置可能不在脚本的范围内。

这就像在前端实现的“自动增量”,您可以执行我写给您的操作以防止范围问题(自动增量键将成为“模型定义”的一部分,例如某种静态变量):

var MyModel = Backbone.Model.extend({
globalCounter : 0,
initialize: function () {
this.set('id', MyModel.prototype.globalCounter++);
}
});

关于javascript - 为什么模型 ID 没有保留在集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12573931/

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