我有一个基于骨干的项目,我使用UnderScore Template作为模板引擎。在我的Backbone视图中,我创建了一个模型对象(optionsType:this.modelTest)并将其传递给我的模板,如下所示:
template : _.template($('#planoption').html()),
render: function () {
this.$el.html(this.template({
optionsType:this.modelTest
}));
我看到模型对象已成功创建,因为我可以将其打印到我的Chrome控制台。在模板文件中,我尝试获取其中一个打印的属性:
<@optionsType.get("Plan")@>
我也尝试了这个:
<@=optionsType.get("Plan")@>
在任何情况下,不是打印属性的实际值(甚至打印为null,我可以仔细检查我的模型初始化和默认值),它只是在我的网页上再次打印整行时呈现该页面,所以像这样的东西打印在网页上:
" <@=optionsType.get("Plan")@>"
以下是我在Main.js中加载的模板设置:
require(['views/hubview', 'boilerplate'], function (hubview,Boilerplate) {
Backbone.emulateHTTP = true;
_.templateSettings = {
interpolate: /\<\@\=(.+?)\@\>/gim,
evaluate: /\<\@([\s\S]+?)\@\>/gim,
escape: /\<\@\-(.+?)\@\>/gim
};
var renderHubView = new hubview();
renderHubView.render();
});
我在这里做错了什么阻止了值在模板中被替换并在加载时打印在屏幕上?