为下划线模板使用多个数据源
Using multiple data sources for an underscore template
我想使用i18n(for require.js)库将存储的字符串加载到基于用户语言的资源文件中。我使用了这种方法,因为我在项目中同时使用了主干和require.js。
假设这是我想要使用翻译字符串的模板。
<h1><%= test.options.test %></h1>
<b> user_ud: <%= data.id %> </b>
第一行使用从资源文件中获取的数据进行计算。但第二行,是我想使用不同来源的数据的地方。
(默认资源文件)
define({
'root': {
'options': {
'test': 'Yellow'
}
},
"en-us": true
});
现在有一部分我想把它呈现到我的视图中。
define(['underscore', 'backbone', 'models/model', 'templates/template' , 'i18n!nls/resource'], function ( _, Backbone, tModel, template, resource) {
var TooltipView = Backbone.View.extend({
el : $('#test'),
initialize: function(options){
this.model = new tModel();
},
render: function(){
var $el = this.$el;
if(template.length != 0){
var compiledTemplate = template['test']( resource ) /// loads pre-compiled template ///
$el.html(compiledTemplate);
}else{
console.log(" [e] No template found. ");
}
});
}
});
return TooltipView;
});
我想实现这个输出:
<h1> Yellow </h1>
<b> id: 14 </b>
但我不确定如何将两个数据源放入一个模板中。
您可以将resource
和模型数据包装到一个新对象中,该对象将成为模板中使用的根对象:
var compiledTemplate = template['test']({
i18n: resource,
data: this.model.toJSON()
});
然后在模板中访问它们
<h1><%= i18n.test.options.test %></h1>
<b> user_ud: <%= data.id %> </b>
相关文章:
- es6 相当于下划线查找位置
- 用空格替换下划线PHP
- 如何使用下划线js转换这些数据
- 带嵌套json的下划线js查找
- 如何逃离<>在javascript下划线模板中
- TinyMCE从MSWord粘贴的文本在所有文本下加下划线
- 使用lodash下划线基于键拆分jsonarray
- 在控制台中显示下划线变量
- 如何从另一个带下划线的数组中筛选带元素的数组
- 筛选下划线中的对象
- 在键值对中对求和值进行下划线
- 使用下划线将键和值的两个数组合并到一个对象中
- 如何将文件名中的斜线替换为下划线
- 如何在结果中添加下划线但不添加虚假值的情况下进行映射
- 下划线用句点扩展.旋转引号被删除,如何用引号获得它
- 如何将id数组与带下划线的对象数组嵌套属性进行比较
- 多行下划线模板和_
- 下划线模板不是不显示弹出框功能
- 为下划线模板使用多个数据源
- 如何在一个带下划线的js模板中插入多个数据源