2013-10-11 1 views
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> 

Содержимое генерируется в пределах 'Save'.

 merchantName:$('#merchantName').val(), 
+1

Это плохая практика, чтобы иметь несколько экземпляров ID. Идентификаторы должны быть * уникальными *. Вместо этого используйте класс. – dthree

+1

id также должен быть уникальным для моделей, идентичные идентификаторы будут объединены с помощью Collection.set() и reset() Backbone.js. Чтобы уточнить, класс должен использоваться в html. –

+0

Я считаю, что соглашение заключается в доступе к свойствам модели с помощью метода get вместо использования атрибутов: data.get (имя продавца). Я знаю, что это не связано с вашим вопросом, но я думал, что хочу указать на это. –

ответ

1

Что вы хотите сделать, так это настроить остальные компоненты для приложения «Магистраль». Красота Backbone.js - это способность отделять коллекции, модели и представления, чтобы ваша логика оставалась в нужном месте.

Вы хотите использовать вызов AJAX для извлечения своих моделей с сервера с помощью коллекции. Затем используйте функцию сброса коллекции.

Вот пример того, как вы можете получить коллекцию моделей с сервера.

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' обычно ссылается на модель в бэкэнд приложения, поэтому убедитесь, что каждый идентификатор на самом деле является тем, кем вы хотите. Я работаю с приложением, у которого есть обратный конец без обратной связи, и поэтому идентификаторы никогда не переносятся в интерфейс.

Есть несколько отличных ресурсов для начала работы с 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/

Смежные вопросы