我试图在骨干网中创建一个视图,这是一个" 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语句,因此,任何人都可以帮助兄弟吗?
最好的问候
答案 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