有很多这样的问题。我还没有找到答案。
使用带有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时模型未定义?
答案 0 :(得分:0)
您还需要在Model:
中设置属性urlRoot
var TodoModel = Backbone.Model.extend({
urlRoot: "/Practice/GetCollection",