我正在尝试使用backbone.js模型创建一个树,但我遇到了问题:
收藏:MCollection :
define
(
['backbone', 'models/M'],
function(Backbone, M)
{
'use strict';
return Backbone.Collection.extend
(
{
model: M,
}
}
);
}
);
以及具有依赖于该模型的集合的模型......
型号:M
define
(
['backbone', 'underscore', 'vent', 'collections/MCollection'],
function(Backbone, _, vent, MCollection)
{
'use strict';
return Backbone.Model.extend
(
{
_children : null,
initialize : function(attributes, options)
{
this._children = new MCollection();
},
}
);
}
);
所以发生了什么..我加载模型M,但在模型中我也创建了一个集合,其模型为:M,所以它相互依赖...因此MCollection的模型仍未定义,虽然它应该引用M。
我试过想我怎么能解决这个问题,但我找不到办法做到这一点。你呢?
答案 0 :(得分:0)
循环依赖通常是糟糕设计的标志。我建议您重新考虑这个问题并尝试以其他方式解决它。例如,您是否需要使用集合创建模型?如果希望能够传递任意对象并将它们实例化为模型,则只需要集合中的模型字段。如果您始终将M模型添加到集合中,则无需在集合中引用它。