Angular 2 Dart模板语法:如何访问静态方法?

时间:2017-03-14 17:25:50

标签: templates dart angular-dart angular2-dart dart-angular-templates

有没有办法从Dart中的模板访问静态方法?

问题如下:

offer.dart:

class Offer {
  static String getPriceString(double price) {
    return euroFormat.format(price) + " €";
  }
}

首先尝试:

main_component.html:

<div class="offer" *ngFor="let offer of offers">
 <span class="offer_price">{{ offer.getPriceString(1.9) }}</span>
</div>

例外:

  

EXCEPTION:NoSuchMethodError:Class&#39; Offer&#39;没有实例方法   &#39; getPriceString&#39 ;.接收方:提供的实例&#39;试着打电话:   getPriceString(4.9)

第二次尝试:

main_component.html:

<div class="offer" *ngFor="let offer of offers">
 <span class="offer_price">{{ Offer.getPriceString(1.9) }}</span>
</div>

例外2:

  

EXCEPTION:NoSuchMethodError:Class&#39; MainComponent&#39;没有实例   getter&#39; Offer&#39;。接收者:主要成分的实例&#39;试着打电话:   报价

如果我从static中删除了getPriceString()关键字,那么所有内容的工作方式就像调用&#34; First Try&#34;但感觉不好,因为我失去了静态通话的可能性。

1 个答案:

答案 0 :(得分:3)

绑定表达式的范围是组件类实例。

如果要从该范围外访问某些内容,则需要提供通过组件类实例(如getter)访问它的方法

class MyComponent {
  String get someStaticProp => SomeClass.someStaticProp;
}

然后你可以在视图绑定中访问它,比如

<div>{{someStaticProp}}</div>