javascript - Backbone.js 不使用 .each() 迭代集合

标签 javascript jquery html backbone.js underscore.js

我一直在进行一些 Backbone.js 编码,并遇到了一个特定问题,即我在迭代集合的内容时遇到问题。 AppViewaddAll 函数中的 Tasker_TodoList.each(this.addOne, this); 行由于某种原因未正确执行,抛出错误:未捕获类型错误:未定义不是函数

链接: RUNNING APP WITH ERROR -> 在输入框中输入内容,按“+”按钮在控制台中查看错误。

有问题的代码是:

$(function() {
    var Todo = Backbone.Model.extend({
    defaults: {
        title: "Some Title...",
        status: 0 //not completed
    }
    });

    var TodoList = Backbone.Collection.extend({
        model: Todo,
        localStorage: new Store('tasker')
    });

    var Tasker_TodoList = new TodoList();

    var TodoView = Backbone.View.extend({
        tagName: 'li',

        template: _.template($('#todoTemplate').html()),

        events: {
            'click .delbtn': 'delTodo'
        },

        initialize: function(){
            console.log("a new todo initialized");
            //this.model.on('change', this.render, this);
        },

        render: function(){
            this.$el.html(this.template(this.model.toJSON()));
            return this;
        },

        delTodo: function(){
            console.log("deleted todo");
        }
    });

    var AppView = Backbone.View.extend({
        el: 'body',

        events: {
            'click #addBtn': 'createOnClick'
        },

        initialize: function(){
            Tasker_TodoList.fetch();
            Tasker_TodoList.on('add', this.addAll);
            console.log(Tasker_TodoList);
        },


        addAll: function(){
            $('#tasksList').html('');
            console.log("boooooooma");
            Tasker_TodoList.each(this.addOne, this);
        },

        addOne: function(todo){
            console.log(todo);
        },

        createOnClick: function(){
            Tasker_TodoList.create();
        }

    });

    var Tasker = new AppView();
});

有人可以帮我找出我做错了什么吗?谢谢大家的帮助:-)

最佳答案

更改 AppView 上的初始化函数:

Tasker_TodoList.on('add', this.addAll);

对此:

Tasker_TodoList.on('add', this.addAll,this);

关于javascript - Backbone.js 不使用 .each() 迭代集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12883863/

相关文章:

javascript - 如何向 div 容器中的图像添加 "rel"属性?

javascript - 单击警报框中的 'ok' 后,它应该保留在同一页面中

javascript - 来自动态生成的控件的 Jquery 事件

javascript - jquery CODEIGNITER 的依赖下拉列表以前的选择不会消失

javascript - child 的 child Javascript DOM

css - 在响应式网站的 youtube 评论部分对齐图像和评论

javascript - 如何在 reveal.js 中启用幻灯片之外的链接

javascript - Creating a HTML form with selector 已保存的 SQL 十六进制颜色的选择器

javascript - JS - 停止对象链接而不会出错

javascript - Chrome 浏览器在刷新时不会重新加载 Nanogallery2 javascript