Javascript 为什么我的主干模型奇怪地嵌套在一个集合中,需要深入访问方法/属性?
我有一个集合和一个模型,它们都使用属性/选项来增加额外的功能。以下是模型(LoadRouteGroup): 以及集合(LoadRouteGroup): 它们被实例化为:Javascript 为什么我的主干模型奇怪地嵌套在一个集合中,需要深入访问方法/属性?,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,我有一个集合和一个模型,它们都使用属性/选项来增加额外的功能。以下是模型(LoadRouteGroup): 以及集合(LoadRouteGroup): 它们被实例化为: var loadRouteGroup = new LoadRouteGroup({ entityType: "facility" }); // WORKS loadRouteGroup.fetchf(); // assign groupingType option to collection to denote wh
var loadRouteGroup = new LoadRouteGroup({
entityType: "facility"
});
// WORKS
loadRouteGroup.fetchf();
// assign groupingType option to collection to denote which URL to use
var loadRouteGroups = new LoadRouteGroups({
model: loadRouteGroup
}, {
groupingType: "facility"
});
var firstGroup = loadRouteGroups.at(0);
// DOESN'T WORK
firstGroup.fetchf();
// WORKS
firstGroup.attributes.model.fetchf();
我希望对firstGroup.fetchf()
的调用能起作用。。。但事实并非如此。相反,为了访问该方法,我不得不奇怪地向下钻取并使用firstGroup.attributes.model.fetchf()
这是怎么回事?这对我来说似乎很简单,但我始终无法找出我的集合和模型之间的关系有什么问题。在扩展集合时而不是在实例化时指定模型。集合定义应包括模型类型:
return Backbone.Collection.extend({
// ....
model: LoadRouteGroup
});
初始化集合时,传入模型数组:
var loadRouteGroup = new LoadRouteGroup({
entityType: "facility"
});
var loadRouteGroups = new LoadRouteGroups([loadRouteGroup], {
groupingType: "facility"
});
在初始化过程中,是否不能同时执行这两项操作(定义集合的模型和传入实体/分组类型)?在定义类时,应该指定模型类型,而不是初始化集合。主干中的每个集合应该只对应于一个模型类型,因此在定义集合时会指定它。Lukas问了同样的问题,但是:我不应该以任何一种方式来完成吗?
return Backbone.Collection.extend({
// ....
model: LoadRouteGroup
});
var loadRouteGroup = new LoadRouteGroup({
entityType: "facility"
});
var loadRouteGroups = new LoadRouteGroups([loadRouteGroup], {
groupingType: "facility"
});