Backbone.js - 扩展基本集合给出错误

时间:2013-08-14 05:40:56

标签: jquery backbone.js backbone-collections

在我的应用程序中,我保留了一个baseCollection,从baseCollection,我正在扩展更多的集合来获取数据..但是我收到一个错误说:

Uncaught TypeError: Object [object Object] has no method 'extend' 

原因是什么??

这是我的基础集合:

         define(["backbone","models/model"], function (Backbone,model) {

            var baseCollection = Backbone.Collection.extend({
                    //this is the base url
                url:"https://recordsmanager.mahindrasatyam.com/EDMSWSStatic/rest/",
                model:model,
                initialize:function(){
                    console.log("base collection initialized");
                }
            });

            return new baseCollection;

        })

我的导航集:(扩展基本集合):

     define(["backbone","models/model","collection/baseCollection"], function (Backbone,model,baseCollection) {

        var headerCollection = baseCollection.extend({
//i am getting navigation Json my url should be (https://recordsmanager.mahindrasatyam.com/EDMSWSStatic/rest/edms/navigationLinks)
            url:"edms/navigationLinks",
            model:model,
            initialize:function(){

                console.log(baseCollection);
            },
            parse:function(response){

                console.log(response);

            }
        });

        new headerCollection;

    })

但我无法扩展基本集合。我正在做的方式是错的..?如果是这样的话,扩展基本网址的正确方法是什么(我确实没有视图,所以我的no.of集合需要从基本网址扩展)。

提前致谢。

1 个答案:

答案 0 :(得分:4)

您无法扩展实例,但可以扩展集合“class”。你要打{{1​​}}的事就是这个:

extend

不是这一个:

var baseCollection = Backbone.Collection.extend({ /* ... *? });

因此,如果您的new baseCollection; 仅用于扩展,那么您需要:

baseCollection

您可能还想将其称为return baseCollection; // No 'new' here ,因为这是集合的通常和预期大写。