Javascript 主干网不获取检索到的模型的调用构造函数吗?
主干集合Javascript 主干网不获取检索到的模型的调用构造函数吗?,javascript,backbone.js,typescript,Javascript,Backbone.js,Typescript,主干集合fetch和parse函数似乎都没有为检索到的模型调用构造函数;我说得对吗?所以,如果需要为它们初始化一些特殊属性(在构造函数或初始值设定项中),则必须显式地调用它。例如,在fetch函数的success回调中。还是我错过了什么 下面是一个例子 return t.collection.fetch({ success: function () { for (var i = 0; i < t.collection.models.length; i++) {
fetch
和parse
函数似乎都没有为检索到的模型调用构造函数;我说得对吗?所以,如果需要为它们初始化一些特殊属性(在构造函数或初始值设定项中),则必须显式地调用它。例如,在fetch
函数的success
回调中。还是我错过了什么
下面是一个例子
return t.collection.fetch({
success: function () {
for (var i = 0; i < t.collection.models.length; i++) {
t.collection.models[i] = new MyModel(t.collection.models[i]);
}
},
});
类型脚本已被使用
解决方案。让我检查这里使用的TypeScript语法。我发现这是不正确的。它必须与中类似(除了super()
调用应该先进行)。因此,应该在构造函数中手动设置集合的model
属性
这对其他人来说可能是显而易见的。如果您只是将模型类链接到集合的一部分,那么一切都将自行运行
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Colleciton.extend({
url: "/api/MyModels/",
model: MyModel
});
当
MyCollection
的实例将被获取,并且后端将有一个模型数组时,它将创建所需数量的MyModel实例。对于纯JavaScript,您的答案显然是正确的,这让我检查了本例的TypeScript语法。我将把我调查过的信息包括在我的问题中。谢谢。我在带主干的打字稿中找到了这个,可能会对你有帮助。谢谢。它似乎包含了一些有趣的东西。
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Colleciton.extend({
url: "/api/MyModels/",
model: MyModel
});