我想在我的Phonegap / Backbone移动应用程序中本地化模板。我想以某种方式始终覆盖附加属性和语言的方式来覆盖下划线渲染功能。让我在示例中展示一下:
可以说我需要(require.js)这样的HomeView模板:
<div>
<p><%= language.get('someText') %></p>
</div>
在我的HomeView.js中,我有:
var template = _.template(HomeTemplate);
this.$el.html( template({language: LanguageModel}));
这可行,但是我不想总是将此语言属性附加到下划线模板。我能以某种方式覆盖该渲染函数,使其始终包含语言模型吗?
您可以将任何喜欢的JavaScript表达式放入其中<%= ... %>
。特别是,您可以访问全局变量。因此,如果您具有全局应用程序名称空间:
// I'll call it `app` for lack of a better placeholder.
window.app = { ... };
然后,您可以放在language
那里:
app.language = your_language_model;
并以任何模板访问它,而无需为_.template
调用或编译的模板函数提供任何额外的信息:
var t = _.template('<%= app.language.get('pancakes') %>');
var h = t();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句