Angular 2 binding: TypeError
Angular 2 binding: TypeError
请考虑以下代码,或者查看此 plunk: https://plnkr.co/edit/mwPHfz?p=info。
主人
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
}
当您单击列表(主)中的名称时,应更新表单(详细信息)。名字和姓氏属性应分别显示在名字和姓氏输入中。
但是,当您查看开发人员工具时,您可以在加载应用程序时看到以下错误:
异常:类型错误:l_user0在 [user.firstName in DetailComponent@4:27] 中未定义
因此,不知何故,似乎不接受与用户的绑定。谁能说出为什么?
您正在将一个未定义的对象(在选择用户之前)传递给 DetailComponent。仅当存在选定用户时,才应呈现详细信息组件。
<div *ngIf="selectedUser">
<detail [user]="selectedUser"></detail>
</div>
工作扑克。在index.html中,我不得不将导入的角度js文件从angular.min.js替换为angular.dev.js以修复plunker上一个不相关的问题。
<ul class="list-group users-list">
<li class="list-group-item"
*ngFor="let user of users"
(click)="selectUser(user)"
[class.active]="user === activeUser">
{{ user.name }} ({{ user.username }})
</li>
</ul>
您应该启动 selectedUser 参数。
export class MasterComponent {
users: User[] = MOCKUSERS;
selectedUser: User = null;
selectUser(user: User) {
this.selectedUser = user;
}
}
<div>
<detail [user]="selectedUser"></detail>
</div>
@Component({
selector: "detail",
template: `
<h2>Detail</h2>
<div *ngIf="user !== null">
<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 = null;
}
相关文章:
- TypeError:无法读取属性'推'未定义的JavaScript
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- gulp Iconify任务抛出错误TypeError:Path必须是字符串.收到false
- Uncaught TypeError:undefined不是函数-ember js
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- Snap()方法导致Uncaught TypeError
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- jQuery使用ajax自动完成问题-TypeError:this.source不是函数
- 角度推入数组给出:TypeError:无法读取属性'推'的未定义
- http/rxjs catch回调中的Angular 2重定向导致TypeError:无法读取属性'订阅'
- 向Angular作用域对象添加对象数组——TypeError
- TypeError:this.getAttribute不是一个函数-javascript
- poster typeerror用户不是函数
- TypeError:无法读取属性'findAll'的未定义
- TypeError:t(..).on不是fullcalendar上的函数
- Angular 2 binding: TypeError