主干JS重构内联集合的视图

时间:2016-02-09 18:47:22

标签: javascript backbone.js

我是backbone.js的新手,并且继承了一些代码,其中包含在视图中的方法内定义的集合。我想把它拉到自己的模块中,但我正在努力。这是集合:

define("resource/ResourceCollection", [
"underscore",
"main/AbstractCollection",
"util/BackgridUtils"
], function(_, AbstractCollection, BackgridUtils) {
    var ResourceCollection = AbstractCollection.extend({
        url: url,
        model: ResourceModel,
        state: state,
        queryParams: BackgridUtils.getQueryParams({
            _queryFilter: 'true'
        }, this.data.isSystemResource)
    });
    return new ResourceCollection;
});

以下是重构模块到目前为止的样子:

public static ActionResult ...

如何使用正确的值从我的视图中实例化集合?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您应该返回集合的实际构造函数,而不仅仅是它的实例。 然后你可以使用这个"模块"在应用程序的任何其他位置创建此集合的实例。

define("resource/ResourceCollection", [
  "underscore",
  "main/AbstractCollection",
  "util/BackgridUtils"
], function(_, AbstractCollection, BackgridUtils) {
  var ResourceCollection = AbstractCollection.extend({
    url: url,
    model: ResourceModel,
    initialize: function(models,options){
       //handle custome options here
    },
    state: state,
    queryParams: BackgridUtils.getQueryParams({
      _queryFilter: 'true'
    }, this.data.isSystemResource)
  });
  return ResourceCollection;
});

然后,从您的视图中,您可以使用动态数据(如

)创建集合的实例
new ResourceCollection([],{
 url: "some dynamic url"
 //some other custom options can be passed here
})