2

我正在创建一个具有如下外部 url 的集合:

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 类型。它们是简单的对象类型。有人可以帮我告诉我这里哪里出错了吗?

谢谢你。

4

2 回答 2

1

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

this.collection.each(function (model) {
  console.log(model instanceof TodoModel);
});
于 2012-12-03T21:20:01.433 回答
1

我想你只是有一个错字。model: Todo应该model: TodoModel

于 2012-12-05T16:51:05.067 回答