【发布时间】:2016-01-26 08:41:58
【问题描述】:
所以我想根据来自 angular-translate 的翻译在 html 页面中插入一个指令。 假设我有这两个指令:
.directive('englishText', function() {
return {
template: 'Hello'
};
});
.directive('spanishText', function() {
return {
template: 'Hola'
};
});
我有这两个 json 文件,翻译将从中来:
english.json
{
"LANGUAGE" : "english-text"
}
spanish.json
{
"LANGUAGE" : "spanish-text"
}
所以在 html 页面上我想要这样的东西:
<div {{'LANGUAGE' | translate}}></div>
但作为输出,我只是得到这个:
<div {{'language' | translate}}></div>
而不是
<div english-text>Hello</div>
我也试过这个:
<{{'LANGUAGE' | translate></{{'LANGUAGE' | translate}}>
但我得到这个作为输出
<english-text>
它的解释就像一个 innerHTML 而不是一个标签...
【问题讨论】:
-
你为什么要这个,这似乎是非常糟糕的做法。除此之外,您不能在模板中执行此操作,您需要在
$compile()s 子指令的父指令中执行此操作 -
您应该有 1 个可以处理所有翻译的指令,而不是每个翻译的不同指令。除了语言,英语指令与西班牙语指令有何不同?
-
@Rhumborl 它与模板没有什么不同......我只是简化了问题,所以只有要点应该在那里......
标签: javascript angularjs angularjs-directive angular-translate