无法使骨干事件正常工作

浮士德

我正在将Backbone.js 1.1.2与jQuery 1.11一起使用。

我想我缺少了一些非常简单的东西。

我已经建立了一个模型:Contact和一个集合:ContactList

我成功地ContactView使用从中获得的模型渲染视图ContactList.fetch()

但是,当我尝试在视图初始值设定项中绑定更改事件时:

this.model.on('change', this.render, this);

...我得到:

backbone Uncaught TypeError: Object #<Object> has no method 'on'

因此,我回到文档中进行阅读,并阅读了.on()其中的内容Backbone.Events,并以某种方式需要扩展我的模型以使用此功能(以及为什么这属于模型的现成功能的一部分??)

我试过宣布

_.extend(this, Backbone.Events); 

...ContactView声明绑定之前在initialize函数中,但没有骰子。

我需要怎么做才能使Backbone.Events功能正常工作?

更新:所有相关代码(sans模板)

var Contact = Backbone.Model.extend({
    defaults: {
        FirstName: '',
        ...[etc]
    },
    initialize: function() {
    }
});

var ContactList = Backbone.Collection.extend({
    model: Contact,
    url: '/api/Contacts/getall'
});

var ContactView = Backbone.View.extend({        
    initialize: function() {
        this.render();
        this.model.on('change', this.render, this);
    },
    render: function () {
        var template = _.template($('#contact_template').html(), this.model);
        this.$el.html(template);
    }
});

var contactList = new ContactList();

contactList.fetch({
    success: function (collection, response, options) {
        contactList.models.forEach(function (m) {
            var $el = $('<li />')
                .addClass('adminItem clearfix')
                .appendTo($('#contactList'));
            new ContactView({ el: $el, model: m.attributes });
        });
    }        
});
贝洪比

这条线是麻烦的根源

new ContactView({ el: $el, model: m.attributes });

m.attributes 是一个普通的js对象您想传递实际的模型对象:

new ContactView({ el: $el, model: m});

并且由于集合中包含下划线方法,因此您应该可以对此简化一些:

    contactList.each(function (m) {
        var $el = $('<li />')
            .addClass('adminItem clearfix')
            .appendTo($('#contactList'));
        new ContactView({ el: $el, model: m});
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

骨干事件触发顺序

来自分类Dev

骨干事件触发顺序

来自分类Dev

绑定和取消绑定骨干事件

来自分类Dev

骨干事件回调绑定

来自分类Dev

在幻象视图上触发的骨干事件

来自分类Dev

在RequireJS中集中式骨干事件聚合器-这是如何工作的?

来自分类Dev

导致一系列事件骨干事件:名称

来自分类Dev

骨干事件并不总是在el上发生

来自分类Dev

骨干事件不会通过提交触发

来自分类Dev

骨干事件未绑定到动态添加的内容

来自分类Dev

jQuery addclass在骨干事件上不起作用

来自分类Dev

骨干事件选择器-类似于jQuery

来自分类Dev

骨干事件处理程序不起作用

来自分类Dev

setOnKeyPressed事件无法正常工作

来自分类Dev

骨干路由器无法正常工作

来自分类Dev

多个路由在骨干.js中无法正常工作

来自分类Dev

骨干事件:将模型数组添加到集合中

来自分类Dev

如何通过触发骨干事件或添加/删除/更改集合来传递自定义选项

来自分类Dev

骨干事件监听器在所有元素上触发

来自分类Dev

骨干事件总线和同一页面上的多个视图

来自分类Dev

使用骨干事件来切换集合视图属性或jQuery.siblings()?

来自分类Dev

骨干事件:将模型数组添加到集合中

来自分类Dev

鼠标进入事件无法正常工作

来自分类Dev

按钮无法正常工作(onclick事件)

来自分类Dev

Selectize.js事件-无法正常工作

来自分类Dev

角度单击事件绑定无法正常工作

来自分类Dev

触发onclick事件无法正常工作

来自分类Dev

jQuery事件功能无法正常工作

来自分类Dev

jQuery滑块的slide事件无法正常工作