直接来自angular.io的例子对我不起作用:
<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 { }
所以我不确定问题是什么?如果我只是从div中删除“; else elseBlock”,* ngIf语句按预期工作。因此,我相信我的进口是正确的。非常感谢任何帮助。
答案 0 :(得分:2)
所以我在将package.json文件中的角度版本从2.4.0更改为4.0.0-beta.5之后才开始工作。如果你看一下角度变化日志(https://github.com/angular/angular/blob/master/CHANGELOG.md),看来ngIf的'else'部分甚至无法工作,直到角4.0.0-beta.0
我不确定为什么官方文档解释了如何使用'else',因为在撰写本文时,最新的稳定版本甚至不支持* ngIf的'else'部分
答案 1 :(得分:0)
这适用于Angular 4版本
// ngIf / Else的语法
<div *ngIf=”condition; else elseBlock”>Truthy condition</div>
<template #elseBlock>Falsy condition</template>
只需将角度版本从2升级到4,休息就可以了