我在使用Angular interpolation {{blah}}时看到意外的行为差异,而不是ng-bind =' blah' 使用ng-translate 时。所以给出一个非常简单的控制器
$scope.name = "Angular"
以下完美地使用插值和ng-bind ..
<div>Interpolation : Hello {{ name }}</div>
<div>ng-bind : Hello <span ng-bind="name"/></div>
输出
Interpolation : Hello Angular
ng-bind : Hello Angular
现在,介绍 ng-translate ,首先设置简单的翻译表..
$translateProvider.translations('en', {
'WELCOME-INTERPOLATE': 'Hello {{ name }}',
'WELCOME-BIND': 'Hello <span ng-bind="name"/>'
});
然后
<span translate translate-values="{name: name}">WELCOME-INTERPOLATE</span>
<span translate translate-values="{name: name}">WELCOME-BIND</span>
产生
Hello Angular <-- This is interpolate
Hello <-- This is ng-bind and **fails**
然后添加&#39; translate-compile&#39;根据我的理解,它消除了对翻译价值的需求。并给予&#39;翻译&#39;访问其父作用域,使用&#39; translate-compile&#39;替换&#39;翻译价值&#39;
<span translate translate-compile>WELCOME-INTERPOLATE</span>
<span translate translate-compile>WELCOME-BIND</span>
产生相反的结果
Hello <-- This is interpolate and **fails**
Hello Angular <-- This is ng-bind
例如,请参阅我的plunk
答案 0 :(得分:0)
这是在github中解决的:
一切都按预期工作。
要么你错过了价值或HTML(也就是模板应该是 解析了)错过了编译标志。
参见plunkr
https://github.com/angular-translate/angular-translate/issues/987