requirejs:与模块类型相同的新对象

时间:2013-12-01 10:14:06

标签: javascript backbone.js requirejs

我有一个使用requirejs的骨干应用程序,我需要按模型属性过滤一个集合。

因此,我想返回一个包含已过滤项目的新集合。

但是,这是我的集合(collections / ActorList.js),在其中,我想实例化一个新的ActorList。我尝试了下面的代码,但这似乎不起作用(ActorList似乎未定义...)

集合/ ActorList.js:

define([
    'backbone',
    'models/Actor',
    'collections/ActorList'
], function (Backbone, Actor, ActorList) {
    'use strict';

    return Backbone.Collection.extend({
        model: Clothe,
        url : "assets/data/clothes.json",

        filterBy: function(attribute, value) {
            var filtered = this.filter(function(model) { return model.get(attribute) === value; });
            return new ActorList(filtered);
        }
    });
});

1 个答案:

答案 0 :(得分:1)

您的问题表明collections/ActorList.js需要自己。这是一种循环依赖。

这样做怎么样?

define([
    'backbone',
    'models/Actor',
], function (Backbone, Actor) {
    'use strict';

    var ActorList = Backbone.Collection.extend({
        model: Clothe,
        url : "assets/data/clothes.json",

        filterBy: function(attribute, value) {
            var filtered = this.filter(function(model) { return model.get(attribute) === value; });
            return new ActorList(filtered);
        }
    });

    return ActorList;
});