0

我有以下设置并正常工作。

 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(),
4

1 回答 1

1

您要做的是为 Backbone 应用程序设置其余组件。Backbone.js 的美妙之处在于它能够分离集合、模型和视图,以便您的逻辑保持在适当的位置。

您需要使用 AJAX 调用来使用 Collection 从服务器检索模型。然后,使用集合的重置功能。

这是一个如何从服务器获取模型集合的示例。

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/

http://javascriptissexy.com/learn-backbone-js-completely/

于 2013-10-11T00:53:24.243 回答