考虑下面的代码,或者看看这个plunk:https://plnkr.co/edit/mwPHfz?p=info。Angular 2 binding:TypeError
主
import {Component} from "angular2/core";
import {DetailComponent} from "./detail.component";
import {User} from "./user";
import {MOCKUSERS} from "./mock-users";
@Component({
directives: [DetailComponent],
selector: "master",
template: `
<h2>Master</h2>
<div>
<ul>
<li *ngFor="#user of users" (click)="selectUser(user)">
{{user.firstName}} {{user.lastName}}
</li>
</ul>
</div>
<div>
<detail [user]="selectedUser"></detail>
</div>
`
})
export class MasterComponent {
users: User[] = MOCKUSERS;
selectedUser: User;
selectUser(user: User) {
this.selectedUser = user;
}
}
详细
import {Component, Input} from "angular2/core";
import {User} from "./user";
@Component({
selector: "detail",
template: `
<h2>Detail</h2>
<div>
<div>
<input type="text" [(ngModel)]="user.firstName">
</div>
<div>
<input type="text" [(ngModel)]="user.lastName">
</div>
<div>
<button type="submit">Submit</button>
</div>
</div>
`
})
export class DetailComponent {
@Input()
user: User;
}
用户
export class User {
firstName: string,
lastName: string
}
当你点击一个名称列表(主)应该更新表格(细节)。名字和姓氏属性应分别出现在firstName和lastName输入中。
但是,当你在开发工具看,可以加载应用程序时,看到以下错误:
EXCEPTION: TypeError: l_user0 is undefined in [user.firstName in [email protected]:27]
所以不知何故似乎并结合用户不被接受。谁能说出原因?
我已经尝试了* ngIf,但对我来说主要问题确实是需要更改的角度文件。在另一个项目中,我从测试版6切换到测试版8,事情也开始在那里工作。 – Aetherix
@Aetherix缩小的包还有一些未解决的问题,请检查[#6380](https://github.com/angular/angular/issues/6380) – Abdulrahman