Angular2:无法绑定到'ngPluralCase',因为它不是'x'的已知属性

时间:2016-10-18 11:20:33

标签: angular typescript pluralize

首先,这个问题是重复,大多数问题的解答,例如“无法绑定到'x'......”是关于未经插入的模块,我已经导入了权利一个(多个)

我正在关注angular.io关于ngPluralngPluralCase指令的文档:

<some-element [ngPlural]="value">
  <ng-container *ngPluralCase="'=0'">...</ng-container>
  <ng-container *ngPluralCase="'other'">...</ng-container>
</some-element>
     

(...)

     

从@ angular / common / index导出,在@ angular / common / src / directives / ng_plural.ts中定义

当我尝试运行此代码时,出现错误(see it in plnkr)

  

无法绑定到'ngPluralCase',因为它不是'ng-container'的已知属性。

main.ts:

import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
import { Component, NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";

@Component({
  selector: "my-app",
  template:`
  <div [ngPlural]="1">
      <ng-container *ngPluralCase="'=0'">...</ng-container>
      <ng-container *ngPluralCase="'other'">...</ng-container>
  </div>
  `,
  styles: []
})
class AppComponent {

}

@NgModule({
  imports: [
    BrowserModule
  ],
  declarations: [AppComponent],
  exports: [AppComponent],
  bootstrap: [AppComponent]
})
class AppModule { }


platformBrowserDynamic().bootstrapModule(AppModule);

我导出了BrowserModule(导出CommonModule,但我也尝试直接导入CommonModuleAppModule,正如您所看到的,错误是关于{ {1}}而不是ngPluralCase,它位于同一个模块中并且没有问题...

所以我的问题是:

有谁知道这里发生了什么?这是与这些指令的“实验”状态有关的错误还是我错过了什么?

PS :我正在使用angular v2.1.0

2 个答案:

答案 0 :(得分:0)

目前我开了issue on the Github repo,因为它真的好像坏了......

修改这是我的Github问题中的answer that I got

  

这里的问题实际上是NgPluralCase指令使用@Attribute注入,并且因为ng-container是虚拟节点,所以无法在它们上检索属性。

     

在这种情况下,您必须使用<template>标记,文档将作为待处理PR的一部分进行修复。

答案 1 :(得分:0)

答案angular.io现在已经过时,至少是NgPlural的例子 以下示例适用于v2.4.4:

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