微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Angular2 – * ngFor和* ngIf对同一元素产生错误

参见英文答案 > Angular 2 – Two structural directives on the same DOM element 1个
我有一组用户,我想只在桌面上显示男性用户.以下是我试图实现这一目标的方法
import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';

@Component({
    selector: 'app',template:`
    <table>
        <tbody>
            <tr *ngFor="#user of users" *ngIf="user.gender == 'male' " >
                <td>{{user.name}}</td>
                <td>{{user.gender}}</td>
            </tr>
        </tbody>
    </table>
    `
})
export class AppCmp{
    public users = [
        {
            name: "Eesa",gender: "male"
        },{
            name: "Abdullah",{
            name: "Javeria",gender: "female"
        }
    ]
}

bootstrap(AppCmp);

但我收到以下错误

EXCEPTION: TypeError: Cannot read property ‘gender’ of undefined

你可以看到我在同一元素即tr上使用* ngFor和* ngIf.为什么我不能在同一个元素上使用* ngFor和* ngIf?有没有其他方法来实现这一目标?我重新产生了问题here on plunker你可以在控制台上看到错误.

解决方法

实际上,不支持同一元素上的ngIf和ngFor.您可以使用ngIf的扩展语法来实现此功能
<tr *ngFor="#user of users">
  <template [ngIf]="user.gender == 'male'">
    <td>{{user.name}}</td>
    <td>{{user.gender}}</td>
  </template>
</tr>

原文地址:https://www.jb51.cc/js/158777.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐