尝试在当前视图中追加到类,但会导致追加到其他视图

时间:2013-05-17 16:44:18

标签: backbone.js

我正在为一个集合中的每个项目呈现一个视图,每个项目都包含一个我试图附加到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>

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

我想知道如何阻止在同一页面上添加到所有相同的类,而只是从当前视图的模板中添加到该类。

1 个答案:

答案 0 :(得分:0)

如果ul是此视图类的tagName,则只需附加到此视图。

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

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