gpt4 book ai didi

javascript - 对下划线模板使用多个数据源

转载 作者:行者123 更新时间:2023-12-03 10:45:59 26 4
gpt4 key购买 nike

我想使用 i18n (对于 require.js)库,用于根据用户的语言加载资源文件中存储的字符串。我用过this方法,因为我在我的项目中同时使用了backbone和require.js。

假设这是我的模板,我想在其中使用翻译后的字符串。

    <h1><%= test.options.test %></h1> 
<b> user_ud: <%= data.id %> </b>

第一行使用从资源文件中获取的数据进行评估。但第二行是我想使用来自不同来源的数据的地方。

(默认资源文件)

define({
'root': {
'options': {
'test': 'Yellow'
}
},
"en-us": true
});

现在我想将其渲染到我的 View 中。

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>

但我不确定如何将两个数据源放入一个模板中。

最佳答案

您可以将资源和模型数据包装到一个新对象中,该对象将成为模板中使用的根对象:

var compiledTemplate = template['test']({
i18n: resource,
data: this.model.toJSON()
});

然后在模板中访问它们

<h1><%= i18n.test.options.test %></h1> 
<b> user_ud: <%= data.id %> </b>

关于javascript - 对下划线模板使用多个数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28570582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com