0

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

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

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

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

        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;
    }

我想要发生的是集合在渲染时被添加到模型中。我愿意接受有关如何更好地做到这一点的任何建议。

谢谢!

4

1 回答 1

0

我也遇到了这个问题。解决方案是在设置集合之前清除视图。在您的情况下,当您设置父视图时,您可能会这样做:

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

然后,您可以附加您的集合成员。

于 2013-10-30T23:20:39.367 回答