我觉得这应该很简单但我找不到任何东西(至少没有很多开销编码)用于我的特定用例。基本上我有一个不是模态的更新配置文件页面。一旦用户更新,我希望将表单重置回原始状态并使用当前值,以防用户想要进行更多编辑。
我正在使用ngForm的reset()
(也尝试resetForm()
)。这会将其重置为pristine等,但它也会删除输入中的所有值。在我正在使用[(ngModel)]="userRecord.phone"
等的每个输入上,我的userRecord
仍然是正确的。
复位后有没有简单的方法来保持或取回模型值?
onSubmit(event, profileForm: NgForm) {
event.preventDefault();
const myTempVar = this.userRecord;
this.userRecord.put()
.catch((e) => {
this.isProcessing = false;
return Observable.of(false);
})
.subscribe((response) => {
this.displayConfirmation = 'Profile has been updated successfully.'
this.isProcessing = false;
this.userRecord = myTempVar;
}, (err) => {
console.log('There was an error saving', err);
this.displayError = 'Unknown error. Please refresh this page and try again.'
this.isProcessing = false;
});
}
如果我不进行重置,那就是这样。我希望它是这样的,除了pristine并再次启用提交按钮(虽然现在我注意到,如果我进行重置,不会发生这种情况。反正。:-()。
答案 0 :(得分:1)
在表单提交之前,您可以将表单数据克隆到某个tmp对象中:
tmpFormData: someType = Object.assign({}, currentData);
然后在执行reset()
后,您可以执行yourForm.patchValue(valuesFromtmpFormDateObject)
答案 1 :(得分:0)
提交成功后执行此操作。
function generate_page_links($cur_page, $num_pages) {
$page_links = '';
// If this page is not the first page, generate the "previous" link
if ($cur_page > 1) {
$page_links .= '<li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . ($cur_page - 1) . '">«</a></li> ';
} else {
$page_links .= '<li class="disabled"><a href="#" >« </a></li>';
}
// Loop through the pages generating the page number links
for ($i = 1; $i <= $num_pages; $i++) {
if ($cur_page == $i) {
$page_links .= ' <li class="active"><a href="#" >' . $i . '</a></li>';
} else {
$page_links .= ' <li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . $i . '"> ' . $i . '</a></li>';
}
}
// If this page is not the last page, generate the "next" link
if ($cur_page < $num_pages) {
$page_links .= ' <li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . ($cur_page + 1) . '">»</a></li>';
} else {
$page_links .= '<li class="disabled"><a href="#" >»</a></li>';
}
return $page_links;
}
这应该将值重新分配给模型。