集合不发射听事件

时间:2015-09-23 09:13:52

标签: javascript backbone.js backbone-collections

在我的骨干系列中,我正在使用集合视图,视图是“动态”生成的。

我正在努力让视图更新,当一些东西被添加到集合中时,在调试时我注意到该集合没有_listenid在我有限的知识中我假设它意味着它无法监听与之相关的事件?

这会发生什么?

以下是我的观点,

 Pops.Views.ProjectManagers = Backbone.View.extend({

    className: 'ui-user-list ui-user-list--single',

    template: _.template($("#tpl-project-managers").html()),

    events: {
        "click .js-add-user": "addUser"
    },

    initialize: function () {

        // this.collection.on('all', function() {
        //     console.log(arguments);
        // });

        // this.collection.on('reset', this.render, this);
        console.log(this.collection);
        this.collection.on('add', this.addOneProjectManager, this);
    },

    render: function () {
        //alert("!!!!!");
        this.$el.html(this.template());
        this.addAllProjectManagers();
        return this;
    },

    addAllProjectManagers: function () {
        this.collection.each(this.addOneProjectManager, this);
    },

    addOneProjectManager: function (model) {
        console.log(model);
        if(this.model.get('is_admin') == true) {
            model.set('admin', true);
        }

        var teamMember = new App.Views.SingleTeamMember({
            model: model,
            project: this.model
        });

        this.$('.ui-member-list').prepend(teamMember.render().el);
    },
});

如果我在物理上刷新页面,则该集合会有_listenid

我将此视图初始化为

var projectManagerList = new Pops.Views.ProjectManagers({
        model      : this.model,
        collection : this.model.get('project_manager')
    });

这是我通过的模型,

The model

0 个答案:

没有答案