1

我正在尝试使用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。

我试着想我怎么能解决这个问题,但我找不到办法做到这一点.. 你呢?

4

1 回答 1

1

循环依赖通常是糟糕设计的标志。我建议您重新考虑这个问题并尝试以其他方式解决它。例如,您是否需要使用集合创建模型?如果您希望能够传递任意对象并将它们实例化为模型,则只需要集合中的模型字段。如果您总是将 M 个模型添加到集合中,则不需要在集合中引用它。

于 2013-09-17T16:59:50.010 回答