将模型类型设置为骨干中具有外部URL的集合

时间:2012-12-03 20:14:49

标签: javascript jquery backbone.js backbone-collections

我正在创建一个具有以下内容的外部网址的集合:

var todoCollection = Backbone.Collection.extend({
    model: Todo

    url: function() {
        return "http:externalurl.com";
    },

    parse: function(dat) {
        return dat.obj.data;
    }
});
return new todosCollection;​

我的模型看起来像这样:

var TodoModel = Backbone.Model.extend({
    initialize: function() {}
});
return TodoModel;​

现在我在这个视图中以这种方式使用该集合:

$.each(this.collection.models,function(i,model){
      console.log(model);
})

问题是,我的模型没有被设置为TodoModel类型。它们是简单的对象类型。有人可以帮助我让我知道我在哪里错了吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

我不认为你是对的。 console.log可能会说它是一个对象,但几乎可以肯定它是你的模型的一个实例。此外,如果您的示例中的代码是您的真实代码,那么它会被破坏,因为您使用带有向后参数的each函数,而您使用的Todo应该使用TodoModel

this.collection.each(function (model) {
  console.log(model instanceof TodoModel);
});

答案 1 :(得分:1)

我认为你只是有一个错字。 model: Todo应为model: TodoModel