Javascript-форум (https://javascript.ru/forum/)
-   Backbone.js (https://javascript.ru/forum/backbone/)
-   -   Изменение содержимого элемента каждой строки в представлении после render (https://javascript.ru/forum/backbone/44744-izmenenie-soderzhimogo-ehlementa-kazhdojj-stroki-v-predstavlenii-posle-render.html)

hummingbird 31.01.2014 13:51

Изменение содержимого элемента каждой строки в представлении после render
 
Всем привет, как изменить содержимое каждой строки после render, допустим сформирована некая таблица из коллекции данных и в каждой записи есть div c классом some_div, в каждый из которых нужно вставить какой-нибудь текст, я попробовала таким образом, но почему-то текст вставляется во всех строках кроме последней. Может кто-нибудь подскажет как правильно реализовать подобную вещь?)

render : function() {
this.initElement( this.template( this.model.toJSON() ) );

jQuery('.some_div').each(function(index, item){
jQuery(this).html('testest');
});

return this;
},

San4ezy 22.03.2014 17:22

Вопрос был задан давно, наверное вы уже нашли на него ответ. Но вдруг еще кому-то понадобится.
Для того, чтобы отобразить в DOMе изменения модели нужно вызывать render.
App.Views.Task = Backbone.View.extend({
        initialize: function(){
            this.model.on('change', this.render, this);
        },
        render: function(){
            var template = this.template(this.model.toJSON());
            this.$el.html( template );
            return this;
        },
});

При возникновении события change, то есть при изменении модели, будет перерисовываться данный элемент.
Подробнее и наглядно можно посмотреть в видеоуроке, собственно откуда и взят пример: https://www.youtube.com/watch?v=2zlK0w0vvEM .


Часовой пояс GMT +3, время: 17:38.