我确实阅读了很多有关此特定讯息的问题,但它们似乎并不适用于我的情况。
我有这个型号:
app.Template = Backbone.Model.extend({
defaults: {
name: '',
templateType: null,
content: '',
defaultOfType: false,
createdAt: null,
updatedAt: null
}
});
此系列:
var Templates = Backbone.Collection.extend({
model: app.Template,
url: '/templates'
});
app.Templates = new Templates();
在我的路由器中:
this.view = new app.TemplateFormView({ model: new app.Template() });
在那个观点中:
initialize: function() {
this.listenTo(app.Templates, 'add', this.editTemplate);
app.Templates.add(this.model);
// rendering function, other stuff
},
saveMyTemplate: function(e) {
e.preventDefault();
var formData = {};
var oldData = this.model.previousAttributes();
$(e.target).closest("form").find(":input").each(function() {
var el = $(this);
formData[el.attr("id")] = el.val();
});
this.model.set(formData).save();
}
当我尝试保存模型时,我收到此错误:
Uncaught Error: A "url" property or function must be specified
如您所见,url
在集合中设置,模型是集合的一部分。想知道为什么模型似乎不是该集合的成员?
谢谢!
答案 0 :(得分:1)
您可能希望查看model.urlRoot参数。
如果您正在使用集合外部的模型,请指定urlRoot,以启用默认URL函数以根据模型ID生成URL。 “[urlRoot] / ID” 通常,您不需要定义它。请注意,urlRoot也可能是一个函数。
同时检查您的引用是否适用于app和app.Templates。