angular - 无法让 ngPlural 运行 Angular

标签 angular angular2-directives

我正在尝试让 ngPlural 使用 Angular 版本 4.0.3 工作,如 api 中所述:https://angular.io/api/common/NgPlural

<some-element [ngPlural]="value">
  <ng-template ngPluralCase="=0">there is nothing</ng-template>
  <ng-template ngPluralCase="=1">there is one</ng-template>
  <ng-template ngPluralCase="few">there are a few</ng-template>
</some-element>

当我使用 [ngPlural] 时,我收到模板引用的错误 No provider TemplateRef!。如果我删除它并使用 *ngPlural 我也会收到错误 没有 NgPlural 的提供商!

我认为我不需要将其添加为提供程序,因为它来自 Angular 公共(public)库,例如 *ngIf 和 *ngFor,并且它们在连接公共(public)库后即可工作。

文档是否是最新的 v4.0.3?
我怎样才能让它在我的模板中工作?

更新:

我添加了一个plunker来展示这个问题:https://plnkr.co/edit/SQwRWjVEJjpQMVkWO1G4?p=preview

最佳答案

您可以使用扩展形式,例如:

<div [ngPlural]="value" class="testParent">
   <ng-template ngPluralCase="=0">
      <square class="testBox1"></square>
   </ng-template>
   <ng-template ngPluralCase="=1">
     111
   </ng-template>
</div>

<强> Plunker Example

或缩写形式:

{ value, plural, =0 {<square class="testBox1"></square>} =1 {111} }

<强> Plunker Example

关于angular - 无法让 ngPlural 运行 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45782080/

相关文章:

angular - 装饰器不支持函数调用,但调用了 'NgForageModule'

Angular Router - 为什么需要应用程序根目录和 Bootstrap ?

javascript - Angular 2 工具提示应在移动设备或调整窗口大小时自动调整位置

angular - 检测指令中的输入值何时更改

angular - 表单组验证器

angular - msal HTTP_INTERCEPTORS 不自动添加请求 header

jhipster - 在 JHipster Angular 2 应用程序中从本地系统添加自定义 JS 文件

Angular 2向父组件添加一个字符串(css-class)

node.js - 如何在 Angular 和 Node.js 中使用 socket.io?

Angular2,一个组件的多个 View ?