【发布时间】:2013-04-29 11:22:04
【问题描述】:
当我通过将 Handlebar 模板放在单独的文件中来将它们外部化时,我知道如何预编译它们。最近,我一直在缩短模板并内联使用它们。例如,我有以下主干视图。
var ChosenVehicle = Backbone.View.extend({
className: "car selection",
initialize: function(options) {
this.data = options.chosenData;
},
template: Handlebars.compile(
'<h4 class="number">01</h4>' +
'<img src="assets/img/cars/{{vehicleSlug}}.jpg" alt="{{vehicle}}">' +
'<p class="flush">' +
'<small class="text--center caps">' +
'{{vehicle}}' +
'</small>' +
'</p>'
),
render: function() {
var chosenCar = _.find(this.model.get("cars"), function(car) {
return car.id.toString() === this.data.vehicleId;
}, this);
this.$el.html(this.template(chosenCar));
return this;
}
});
使用上述方法而不预编译模板会对性能产生什么影响?我更喜欢在上面设置我的模板,因为我发现它更容易阅读和维护。现在显然我无法预编译我的模板,还是有其他解决方案?
谢谢
泰隆
【问题讨论】:
标签: javascript backbone.js handlebars.js