繁体   English   中英

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

[英]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>

例外:

例外:NoSuchMethodError:类“要约”没有实例方法“ getPriceString”。 接收方:“要约”的实例尝试调用: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:

例外:NoSuchMethodError:类'MainComponent'没有实例获取方法'Offer'。 接收方:“ MainComponent”实例尝试调用:要约

如果我从getPriceString()删除了static关键字,那么一切都将像在“ First Try”中调用的那样工作,但是感觉不好,因为我失去了进行静态调用的可能性。

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

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

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

然后您可以在视图绑定中访问它,例如

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM