Ela*_*da2 15 javascript angular
我有这个angular2模板:
<template *ngIf="alerts.length > 0">
<alert *ngFor="let alert of alerts;let i = index" [type]="alert.type" dismissible="true" (close)="closeAlert(i)">
{{ alert?.msg }}
</alert>
</template>
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with * (" </div>
<div *ngSwitchCase="false" class="container p-t-10">
<alert *ngIf="alerts.length > 0" [ERROR ->]*ngFor="let alert of alerts;let i = index" [type]="alert.type" dismissible="true" (close)="closeAlert"): b@5:37
Run Code Online (Sandbox Code Playgroud)
我把*ngIf和*ngFor放在不同的html元素中是什么问题.它应该工作.没有?
和:
Can't bind to 'type' since it isn't a known property of 'alert'. (""container p-t-10">
<alert *ngIf="alerts.length > 0" *ngFor="let alert of alerts;let i = index" [ERROR ->][type]="alert.type" dismissible="true" (close)="closeAlert(i)">
{{ alert?.msg }}
</alert>
"): b@5:80
Run Code Online (Sandbox Code Playgroud)
我加了
*ngIf="alerts.length > 0避免的情况alert = [].我该怎么办呢?
Gün*_*uer 17
将*在*ngFor使角添加一个<template>标签.在<template>标签上这没有意义,因此这里结构指令具有不同的语法.
<template ngFor [ngForOf]="alerts" let-alert let-i="index">
Run Code Online (Sandbox Code Playgroud)
因为在不同的地方几乎相同的不同语法引起了相当多的混乱,Angular团队最近介绍了
<ng-container>
Run Code Online (Sandbox Code Playgroud)
行为类似于<template>标记(未添加到DOM)但允许更常见的语法
<ng-container *ngIf="alerts.length > 0">
<alert *ngFor="let alert of alerts;let i = index" [type]="alert.type" dismissible="true" (close)="closeAlert(i)">
{{ alert?.msg }}
</alert>
</ng-container>
Run Code Online (Sandbox Code Playgroud)