2017-01-29 9 views
5

В примере непосредственно из angular.io не будет работать для меня:Угловое 2 - * ngIf с другой блок дает мне «Не удается связать с„ngIfElse“», но * ngIf без блока еще работает

<button (click)="show = !show">{{show ? 'hide' : 'show'}}</button> 
show = {{show}} 
<br> 
<div *ngIf="show; else elseBlock">Text to show</div> 
<template #elseBlock>Alternate text while primary text is hidden</template> 

Вместо этого ошибки консоли браузера: «Нельзя привязываться к« ngIfElse », так как это не известное свойство« div ».»

Мой модуль выглядит следующим образом (я в том числе CommonModule):

import { CommonModule } from '@angular/common'; 
import { NgModule }  from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { BrowserModule } from '@angular/platform-browser'; 

import { AppComponent } from './app.component'; 

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

Так что я не уверен, что проблема? Если я просто удалю «; else elseBlock» из div, оператор * ngIf работает по назначению. Поэтому я считаю, что мой импорт верен. Любая помощь приветствуется.

+1

Какую версию вы используете? Импорт 'CommonModule' является избыточным в вашем случае – yurzui

+3

Вход' ngIfElse' был введен с углового ** 4.0.0-beta.0 ** – yurzui

+0

Я только начинаю изучать Угловое и начинать с проекта семплы quickstart. Глядя на мой пакет.json, я считаю, что я использую 2.4.0 для большинства вещей: «зависимости»: { «@ угловой/общий»: «~ 2.4.0», «@ угловой/компилятор»: "~ 2.4.0", "@ angular/core": "~ 2.4.0", "@ угловые/формы": "~ 2.4.0", "@ angular/http": "~ 2.4.0 ", " @ angular/platform-browser ":" ~ 2.4.0 ", " @ angular/platform-browser-dynamic ":" ~ 2.4.0 ", " @ angle/router ":" ~ 3.4. 0 ", – rhino

ответ

2

Поэтому я получил это для работы после изменения угловых версий в моем файле package.json с 2.4.0 до 4.0.0-beta.5. Если вы посмотрите на угловой журнал изменений (https://github.com/angular/angular/blob/master/CHANGELOG.md), то часть «else» ngIf не работает даже до углового 4.0.0-beta.0

Я не уверен, почему в официальной документации объясняется, как использовать 'else "потому что, в времени написания этой статьи последняя стабильная версия оленья кожа даже поддерживать„еще“часть * ngIf

0

Это будет работать в угловых 4 версии

// Синтаксис для ngIf/Else

<div *ngIf=”condition; else elseBlock”>Truthy condition</div> 
<template #elseBlock>Falsy condition</template> 

Просто обновите e угловой вариант от 2 до 4, остальное все нормально