Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 尝试将集合添加到模型并在视图中的多个位置渲染它_Backbone.js_Backbone Views_Backbone.js Collections - Fatal编程技术网

Backbone.js 尝试将集合添加到模型并在视图中的多个位置渲染它

Backbone.js 尝试将集合添加到模型并在视图中的多个位置渲染它,backbone.js,backbone-views,backbone.js-collections,Backbone.js,Backbone Views,Backbone.js Collections,我正在尝试构建一个应用程序,允许您在多个位置的视图中创建项目 例如,在父集合中创建新模型时,可以从集合中添加模型 我遇到的问题是,当我将集合添加到模型并进行迭代时,它会为每个循环添加集合。因此,它最终会在模型中产生大量重复的集合 父模型渲染具有以下循环: this.noteTasksViewAdding = new NoteTaskListViewAdding({ collection: tasks }); $('.note-tasks-list-all').ap

我正在尝试构建一个应用程序,允许您在多个位置的视图中创建项目

例如,在父集合中创建新模型时,可以从集合中添加模型

我遇到的问题是,当我将集合添加到模型并进行迭代时,它会为每个循环添加集合。因此,它最终会在模型中产生大量重复的集合

父模型渲染具有以下循环:

        this.noteTasksViewAdding = new NoteTaskListViewAdding({ collection: tasks });
        $('.note-tasks-list-all').append(this.noteTasksViewAdding.render().el);
        this.collection.each(function(note){
            var view = new NoteView({ model: note });
            $('#items-list').prepend(view.render().el);
        });
然后,模型中包含以下渲染:

    render: function() {
        this.noteTasksViewAdding = new NoteTaskListViewAdding({ collection: tasks });
        $('.note-tasks-list-all').append(this.noteTasksViewAdding.render().el);
        this.$el.html(this.template(this.model.toJSON()));
        return this;
    }
我希望发生的是,在渲染集合时将其添加到模型中。我愿意接受任何关于如何做得更好的建议


谢谢

我也面临着这个问题。解决方案是在设置集合之前清除视图。在您的情况下,设置父视图时,可以执行以下操作:

$('.note-tasks-list-all').html(this.noteTasksViewAdding.render().el);

然后你可以添加你的收藏成员。

我问这个问题做得很糟糕。我在这里创造了一个更好的答案:-测试你的答案有时有效,但我认为我在另一个地方遗漏了一些东西。谢谢你的时间和努力。