{{ alert?.msg }} 我收到这些错误: zone.js:461 Unhandled Promise rejection: Tem-6ren">
gpt4 book ai didi

javascript - angular2 一个元素上不能有多个模板绑定(bind)

转载 作者:可可西里 更新时间:2023-11-01 01:31:56 26 4
gpt4 key购买 nike

我有这个 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>

我收到这些错误:

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

我把 *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

我添加了

*ngIf="alerts.length > 0 以避免 alert = [] 的情况。否则我该如何解决?

最佳答案

**ngFor让 Angular 添加一个 <template>标签。在 <template> 上标记这没有意义,因此这里的结构指令具有不同的语法。

<template ngFor [ngForOf]="alerts" let-alert let-i="index">

由于在不同的地方几乎相同的语法不同造成了相当大的困惑,Angular 团队最近引入了

<ng-container>

其行为类似于 <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>

关于javascript - angular2 一个元素上不能有多个模板绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40126019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com