Событие изменения Backbone.js не запускается

У меня много полей выбора, каждый из которых имеет класс browse_select. Я хочу запускать функцию render всякий раз, когда изменяется какой-либо параметр из этих полей выбора, но эта функция не запускалась.

$(function(){
    var Users = Backbone.Collection.extend({
        url: "/app/phpscripts/services/browse_users/?"
    });

    var UserView = Backbone.View.extend({
        el: '.list_ctn ul',
        tagName: 'li',

        events: {
            "change .browse_select" : "render"
        },

        render: function(){
            console.log("render");
            var users = new Users();
            var that = this;
            users.fetch({
                success: function(){
                    var template = _.template($('#myUserTemp').html(),{users: users.models});
                    that.$el.html(template);
                }
            });
        }
    });

    var userView = new UserView();
    userView.render();
});

person Mesuti    schedule 16.12.2013    source источник
comment
События представления относятся к самому представлению, являются ли ваши поля выбора частью UserView?   -  person chridam    schedule 16.12.2013
comment
В этом окне нет полей выбора, но не UserView. На самом деле я не знал этой базовой информации о событиях, связанных с представлением.   -  person Mesuti    schedule 16.12.2013
comment
Этот ответ может быть полезен.   -  person chridam    schedule 16.12.2013
comment
Не могли бы вы добавить код шаблона?   -  person Ian Jamieson    schedule 19.12.2013


Ответы (1)


Дважды проверьте, что поля выбора находятся в #myUserTemp.

Кроме того, вы можете поместить логику user.fetch за пределы этого представления. Поскольку это часть обратного вызова, я не уверен, что прослушиватели событий могут быть правильно установлены из-за вашего потока.

Я бы посоветовал вам вызвать выборку из-за пределов представления, а затем, когда выборка будет успешной, инициировать новый UserView и передать коллекцию. Это позволяет вам установить _.template() стандартным способом, как свойство представления.

person Xerri    schedule 20.12.2013