我接受了一份维护和改进内部申请的工作后才开始学习ng1。
我发现了许多实例,其中表单中的值在单击确认时未更新(在某些情况下重置为零)。但是,它们在控制台中进行更新。此外,在值重置为零后,当您再次更新输入值时,字段会立即恢复其正确的值。
我的前任所遇到的解决方案是使用禁用的输入值,因为这些正确更新。然而,这是一个黑客,我的老板希望我纠正它。
请参阅下文,了解该问题的更基本示例:
coeficienteFactory.saveProjectCoeficient(vm.id_project, vm.coeficient)
.then(function succesCallback(response) {
console.log('true!!!');
vm.confirm = true;
setTimeout(function(){ vm.confirm = false; console.log("disappears!!!")}, 2000);
}).catch(function errorCallback(response) {
console.log(response)
});
以上示例将触发vm.confirm,并且通过ng-show将在视图中显示成功消息。然而,两秒钟之后,"消失了#34;消息将显示在控制台中,但确认消息在视图中没有相应的响应...
这显然是我个人的一个根本误解,是我必须快速学习的东西!
非常感谢任何帮助。谢谢。
答案 0 :(得分:2)
您需要使用Angular版本 - $timeout
- 这会导致摘要周期。变化:
setTimeout(function(){ vm.confirm = false; console.log("disappears!!!")}, 2000);
要:
$timeout(() => {
vm.confirm = false;
console.log('disappears!!!');
}, 2000);
请务必在控制器中注入$timeout
。