具有主干和要求的TodoMVC无法从服务器获取

时间:2012-10-04 10:47:42

标签: backbone.js model undefined require todomvc

有很多这样的问题。我还没有找到答案。

使用带有backbone.js和require.js的示例TodoMVC,我想从服务器获取而不是从localstorage获取。

我有一个返回正确json集合的url,模型是这样的:

{"string1": "foo", "string2":"bar", "somefloat":0}

在我的模型(model / todo.js)中,我将默认值更改为:

defaults: {string1: '', string2: '',somefloat: 0},

在我的收藏集(collections / todos.js)中,我将注释掉本地存储并添加一个网址。

这使得fetch转到我的服务器,我可以看到它返回json集合。

但由于某种原因,该模型在backbone.js第817行中未定义

    // Prepare a model or hash of attributes to be added to this collection.
    _prepareModel: function (model, options) {
        options || (options = {});
        if (!(model instanceof Model)) {
            console.log(Model);
            var attrs = model;
            console.log(attrs.Kana);
            options.collection = this;

            //ERROR IN THIS LINE: Uncaught TypeError: undefined is not a function 
            model = new this.model(attrs, options);

            if (!model._validate(model.attributes, options)) model = false;
        } else if (!model.collection) {
            model.collection = this;
        }
        return model;
    },

为什么在我不使用localstorage时模型未定义?

1 个答案:

答案 0 :(得分:0)

您还需要在Model:

中设置属性urlRoot
var TodoModel = Backbone.Model.extend({

    urlRoot: "/Practice/GetCollection",