考虑到这些片段(希望这个问题足够完整)......
ModelA.js(有很多modelBs):
ModelBs = (function(_super) {
ModelB.prototype.bWithName = function(name) {
return this.find(function (b) {
return b.name == name;
});
}
})(Backbone.Collection);
return ModelA = (function(_super) {
...
ModelA.prototype.initialize = function() {
this.modelbs = new ModelBs(this.modelbs, {});
};
ModelA.prototype.bWithName = function(name) {
return this.modelbs.bWithName(name);
};
return modelA;
})(BaseModel);
ModelC.js(有一个modelA):
ModelC.prototype.toString = function(opts) {
...
console.log(this.modelA); // defined...
console.log(this.modelA.modelBs); // defined...
console.log(this.modelA.bWithName("foo")); // undefined
...
}
在ModelC.js中,为什么定义了this.modelA
和this.modelA.modelBs
,但this.modelA.bWithName()
未定义,以及如何解决?
这有效:this.modelA.modelBs.first()
。
返回undefined:this.modelA.modelBs.where({name:"foo"})
。
在Web控制台中,这有效:modelZ.modelAs.first().bWithName("foo").attributes
。
访问者或方法通常不能通过其他模型获得吗?
谢谢 -
答案 0 :(得分:0)
呸。该方法实际上是可用的,但严格等于(===
)正在杀死搜索。在一个例子中,我试图使用错误的名称类型进行搜索。
感谢您输入!