有没有办法从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;但感觉不好,因为我失去了静态通话的可能性。
答案 0 :(得分:3)
绑定表达式的范围是组件类实例。
如果要从该范围外访问某些内容,则需要提供通过组件类实例(如getter)访问它的方法
class MyComponent {
String get someStaticProp => SomeClass.someStaticProp;
}
然后你可以在视图绑定中访问它,比如
<div>{{someStaticProp}}</div>