如何基于组件调用模板中的函数?

时间:2014-08-13 11:48:17

标签: dart angular-dart

这是我模板的一部分:

<!-- 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相比有很大不同......

2 个答案:

答案 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>

多数民众赞成!