0
我想使用帶有下劃線模板和骨幹的輔助函數。 現在我做這種方式:骨幹使用帶有幫助程序的下劃線模板
查看:
var View = Backbone.View.extend({
// ...
template: getTpl('#b_ezlo', 1),
// ...
render: function(){
this.$el.html(this.template(this.model.toJSON()));
}
});
模板消氣: 在這裏,我通常會返回模板,用輔助功能一起。 問題是,當我做prepare
我不能返回輔助功能,因爲它需要還返回其他變量的模板,它會導致undefined getDisabledState
:模板
function getTpl(tpl, options) {
if (!tpl) return;
if (!options) options = null;
var prepare = false;
if (options == 1) {
// this is called on View initialization
// with template: getTpl('#b_ezlo', 1),
options = {};
prepare = true;
}
var viewHelpers = {}
if (tpl == "#b_view") {
console.log("prepare", prepare);
viewHelpers.getDisabledState = function() {
if (typeof options.disabled != "undefined") {
return options.disabled;
} else {
return '';
}
}
}
_.extend(options, viewHelpers);
if (prepare) {
return _.template($(tpl).html());
} else {
return _.template($(tpl).html())(options);
}
}
部分以及(玉),我想使用助手:
.icon-block(data-disabled!="<% if (typeof getDisabledState != 'undefined') {getDisabledState()} %>")
我不喜歡這裏if (typeof getDisabledState != 'undefined')
的一部分,這是不不錯的模板。
所以,如果有任何其他方式來準備與輔助功能模板?
我覺得你可以在MarionetteJS籤同一個任務的實現。有templateHelpers功能非常接近您的任務。 – Evgeniy 2014-10-08 07:39:54
Backbone + Marionette + Handlebars架構如何?把手在'registerHelper'中有一個構建,你可以聲明你的定製助手。 – 2014-10-08 08:09:15
謝謝,@Evgeniy。也許應該這樣做,他們定義視圖內的幫助者。 – 2014-10-08 08:10:53