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

Angular 2 Dart Template syntax: How to access static methods?

有没有办法从 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 'Offer' has no instance method 'getPriceString'. Receiver: Instance of 'Offer' Tried calling: 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 'MainComponent' has no instance getter 'Offer'. Receiver: Instance of 'MainComponent' Tried calling: Offer

如果我从 getPriceString() 中删除 static 关键字,一切都像在 "First Try" 中调用一样,但感觉不太好,因为我失去了静态调用的可能性。

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

如果您想从该范围之外访问某些内容,您需要提供一种通过组件 class 实例(如 getter)

访问它的方法
class MyComponent {
  String get someStaticProp => SomeClass.someStaticProp;
}

然后您可以在

等视图绑定中访问它
<div>{{someStaticProp}}</div>