0

我正在为集合中的每个项目呈现一个视图,每个项目都包含一个我试图附加到 ul 的列表,但它们被附加到其他视图的 ul 中。

看法:

    initialize: function(){

    },

    render: function(){
        var current = this.model.toJSON();
        this.$el.html(_.template(cTemplate, current));

        var items = this.model.toJSON().items;
        items.forEach(function(item){
            this.$('.list').append('<li>'+item.attributes.price+'</li>');
        });

        return this;
    }

模板:

<ul class="list"></ul>

我正在尝试附加到 this.$('.list') ,我认为这意味着我将每个项目的价格仅附加到当前视图中的模板类。看来我不能像这样引用它,因为价格会附加到当前视图之前呈现的视图中的所有列表类中。

我想知道如何防止附加到同一页面上的所有相同类,并且只附加到当前视图模板中的一个。

4

1 回答 1

0

如果ultagName这个视图类的,你可以简单地附加到这个。

items.forEach(function(item){
  this.$el.append('<li>'+item.attributes.price+'</li>');
});

或者,ul.list是一个子元素,你可以这样做

items.forEach(function(item){
  this.$el.find('ul.list').append('<li>'+item.attributes.price+'</li>');
});

注意:当复杂性增加时,这种模式将来可能无法维护。如果这些项目有交互,您可以考虑为每个项目创建单独的视图。

于 2013-05-17T17:11:54.647 回答