我有以下设置并正常工作。
require(['models/profile'], function (SectionModel) {
var sectionModel = new SectionModel({id: merchantId, silent: true});
sectionModel.fetch({
success: function (data) {
$('#merchant-name').html(data.attributes.merchantName);
}
});
});
但它只适用于一个实例。我想知道如何正确编辑上面的代码以允许多个实例。
<h3 id="merchant-name"></h3>
内容在“保存”功能中生成。
merchantName:$('#merchantName').val(),
答案 0 :(得分:1)
您要做的是为Backbone应用程序设置其余组件。 Backbone.js的优点在于它能够分离集合,模型和视图,使您的逻辑保持在适当的位置。
您需要使用AJAX调用使用Collection从服务器检索模型。然后,使用集合的重置功能。</ p>
以下是如何从服务器获取模型集合的示例。
var MyCollectionType = Backbone.Collection.extend({
getModelsFromServer:function()
{
var me = this;
function ajaxSuccess(data, textStatus, jqXHR)
{
me.reset(data);
}
$.ajax(/* Insert the ajax params here*/);
}
});
var collectionInstance = new MyCollectionType({
model:YourModelTypeHere
});
collectionInstance.getModelsFromServer();
然后,要渲染每个模型,您需要为每个模型和集合视图创建一个视图。在学习基本的Backbone.js方面有很多资源,我觉得你可以从中查看其中一些来获益。
请记住,Backbone集合默认情况下会合并具有相同ID的模型。 'id'通常引用应用程序后端的模型,因此请确保每个id实际上都是您想要的。我使用的是具有非Restfull后端的应用程序,因此ID永远不会转移到前端。
有一些很好的资源可以从Backbone.js开始。
https://www.codeschool.com/courses/anatomy-of-backbonejs (这是一个免费的课程,一个很好的起点。)
http://net.tutsplus.com/tutorials/javascript-ajax/getting-started-with-backbone-js/