首先,这个问题是不重复,大多数问题的解答,例如“无法绑定到'x'......”是关于未经插入的模块,我已经导入了权利一个(多个)
我正在关注angular.io关于ngPlural
和ngPluralCase
指令的文档:
<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
,但我也尝试直接导入CommonModule
)AppModule
,正如您所看到的,错误是关于{ {1}}而不是ngPluralCase
,它位于同一个模块中并且没有问题...
所以我的问题是:
有谁知道这里发生了什么?这是与这些指令的“实验”状态有关的错误还是我错过了什么?
PS :我正在使用angular v2.1.0
答案 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>