这是我模板的一部分:
<!-- This is the one I want! -->
<label>{{l10n('hallo') | translate}}</label>
如果我的Component有一个函数l10n,那么调用l10n-function
就没问题了<label>{{cmp.l10n('hallo') | translate}}</label>
但那不是我想要的 - 如果可能,我想要l10n(<string>)
,不知何故,这个模板的全局功能......
在AngularJS中实现某些功能,他们为Controller-Scope添加了一个函数:https://stackoverflow.com/a/12466994/504184
我的问题是我没有控制器 - 我在组件中...... 第二件事是AngularDart中的Scope与AngularJS中的Scope相比有很大不同......
答案 0 :(得分:2)
您可以在Component中注入Scope并添加函数。
@Component(selector: 'my-comp')
class Comp {
Comp(Scope scope) {
scope.context['l10n'] = (str) => "Boo[$str]";
}
}
但是,我们正考虑在即将推出的AngularDart版本中删除此功能。
答案 1 :(得分:1)
詹姆斯在Angular 1.0之前的答案是正确的 - 现在它更简单了。
class MyComponent {
...
L10N tr(final String text) {
return new L10N(text);
}
}
<label class="medium">{{tr('Projectname:') | translate}}</label>
多数民众赞成!