当我通过将它们放在单独的文件中来将它们外部化时,我知道如何预编译我的 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;
}
});
使用上述方法而不预编译模板有哪些性能影响?我更喜欢在上面设置我的模板,因为我发现它更容易阅读和维护。现在显然我无法预编译我的模板,还是有其他解决方案?
谢谢
泰隆