gpt4 book ai didi

backbone.js - Backbone localstorage 必须指定 "url"属性或函数

转载 作者:行者123 更新时间:2023-12-04 02:57:43 25 4
gpt4 key购买 nike

我正在使用 backbone-localstorage 插件创建一个基于 Backbone 示例的小型应用程序。

为新模型保存数据时,我总是收到错误“必须指定“url”属性或函数

在阅读了几个类似的主题后,我仍然无法找到造成这种情况的原因。

型号:

directory.models.EmployeeCollection = Backbone.Collection.extend({

localStorage: new Backbone.LocalStorage("EmployeeCollection"),

model: directory.models.Employee,

store: directory.utils.store,

findByName: function(key) {
this.reset(this.store.findByName(key));
}

});

观点:

directory.views.newEmployeeView = Backbone.View.extend({

tagName: "div",

initialize: function() {
this.template = _.template(directory.utils.templateLoader.get('new-employee'));
},

events: {
"click .save": "saveEmployee"
},

render: function(eventName) {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},

saveEmployee: function(event){
this.model.set({
firstName:$('#newFirstName').val(),
lastName:$('#newLastName').val(),
title:$('#newTitle').val(),
city:$('#newCity').val(),
officePhone:$('#newOfficePhone').val(),
cellPhone:$('#newCellPhone').val(),
email:$('#newEmail').val()
});

this.model.save();
window.history.back();

return false;
}
});

最佳答案

我认为在尝试持久化新模型之前,您需要将其作为集合的成员。尝试创建一个新的集合实例并将其传递给 View (可能在您的路由器中),如下所示:

new newEmployeeView({ collection: new EmployeeCollection() });

在您的 View 中,您可以使用 Backbone 的创建便利方法(参见 docs)将模型的新实例添加到集合中并将其持久化:

this.collection.create({
firstName:$('#newFirstName').val(),
lastName:$('#newLastName').val(),
title:$('#newTitle').val(),
city:$('#newCity').val(),
officePhone:$('#newOfficePhone').val(),
cellPhone:$('#newCellPhone').val(),
email:$('#newEmail').val()
});

关于backbone.js - Backbone localstorage 必须指定 "url"属性或函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16836498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com