单个元素(ul)在骨干中查看

时间:2014-10-23 14:23:56

标签: backbone.js

我试图在骨干网中创建一个视图,这是一个" ul",我需要能够将这个视图安装到另一个视图中,并且所有的li子元素都需要填充用_.each ...然而,我试图找出哪个是最好的方法。

我希望有任何帮助指出正确的方向......所以案例是:

 App.Views.BulkResultsView = Backbone.View.extend({
   tagName : 'ul',
   className : 'bulk_results',

   //THIS IS BAD AND I KNOW IT
   template: _.template("
              <% _.each(results, function(result) { %>
                  <li><%= result %></li>
              <% } %>"), 

   initialize : function() {
        this.render();
   },

   render : function() {
       this.$el.html( this.template(  { results : App.bulkResults.toJSON() } ) );
       return this;
   }
 });

我知道我定义模板的方式很糟糕,我甚至不确定我是否可以在其中加入_.each语句,因此,任何人都可以帮助兄弟吗?

最好的问候

1 个答案:

答案 0 :(得分:2)

这是Marionette真正解决的问题之一,它提供了很多默认值,可以减少一些样板代码,集合和项目视图就是很好的例子。

这是一个简单的例子,您可以查看它是否有利于您的需求

BookItemView = Marionette.ItemView.extend({    
    tagName: 'li', 
    template: '#itemView-template'    
});

BookCollectionView = Marionette.CollectionView.extend({    
    tagName: 'ul', 
    childView: BookItemView     
});

http://jsfiddle.net/arturo_pst/qxj1xLj1/21/

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md