Во-первых, этот вопрос не повторяется, большинство ответов на такие вопросы, как "Не удается привязать к '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
Когда я пытаюсь запустить этот код, я получаю сообщение об ошибке (см. в 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
, и, как видите, ошибка касается ngPluralCase
, а не ngPlural
, который находится в том же модуле и используется без проблем...
Итак, мой вопрос:
Кто-нибудь знает, что здесь происходит? Это ошибка, связанная с «экспериментальным» состоянием этих директив, или я что-то упустил?
PS: я использую angular v2.1.0
<template ngPluralCase="other">
(тоже немного короче). Вопрос здесь до сих пор не получил четкого ответа. - person Estus Flask   schedule 18.10.2016