在应用程序中获取多个ID实例

时间:2013-10-11 00:23:06

标签: javascript backbone.js

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

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

1 个答案:

答案 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/

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