【发布时间】:2016-12-30 12:50:08
【问题描述】:
我有一个表单,其中输入单向绑定到对象。
<input type="text" name="lastName" #lastName="ngModel" [ngModel]="selectedPers.lastName" required minlength="2">
保存表单时,我读取表单数据并将其发送到服务器,然后使用虚拟/空数据更新我的模型以将其清除。
this.peopleListObservable.push(newPersonFormData).then(a => {
this.clearPers();
})
clearPers() {
this.selectedPers = this.dummyPers;
this.isPersAdd = true;
}
这个清除方法是独立的,当我通过单击按钮调用它时可以工作,但如果我在我的保存承诺then 方法中将数据发送到服务器后调用它,它就不起作用/清除表单。
任何想法为什么我会遇到这种行为以及我应该怎么做才能清除我的表格?
编辑: 我已经像这样更改了 clearPers 函数,希望重新加载页面:
clearPers() {
console.log('Inside clearPers function');
this.router.navigate(['/person/' + this.key]);
}
你猜怎么着,控制台日志被打印,但路由器导航没有发生。
我错过了什么?
编辑 2: 感谢@FabioAntunes 提醒我路由器的想法无论如何都行不通。
编辑 3: 对具有 Angular 2 RC4 版本的项目提出问题。请阅读下面我对后来发生的事情的回答,并且应该在 Angular2 的最终版本中发生。
【问题讨论】:
-
为什么不使用双向绑定?
-
路由器不会做任何事情,因为它已经在页面上
-
@FabioAntunes 感谢您的警告。
-
@MrF 这样做最终会在我输入这些输入时实时更新同一页面上的所有引用。我只想在首次加载(或选择)时加载它们的值。
标签: angular typescript angular2-template angular2-forms