我在ItemView
中有Marionette
:
App.View.MovieListItem = Marionette.ItemView.extend({
tagName: 'li',
className: 'movie',
model: App.Model.Movie,
id: function() {
return 'movie-'+this.model.get('imdb')
},
initialize: function () {
this.render();
},
template: _.template('<a href="javascript:;">'+
'<i class="fa fa-eye fa-3"></i>'+
'<span class="cover"></span>'+
'<strong><%= title %></strong>'+
'<small><%- year %></small>'+
'<small2>Cached</small2>'+
'</a>'),
});
我想知道是否可以动态创建模板?
因为我想要一些时间(基于检查某些内容的方法)删除small2
标记。
答案 0 :(得分:9)
Marionette has a function名为getTemplate
,可用于返回动态模板。
示例:
App.View.MovieListItem = Marionette.ItemView.extend({
tagName: 'li',
className: 'movie',
model: App.Model.Movie,
id: function() {
return 'movie-'+this.model.get('imdb')
},
initialize: function () {
this.render();
},
getTemplate: function(){
if(condition){
return _.template(/* HTML STRING */);
}else{
return _.template(/* ANOTHER HTML STRING */);
}
}
});