我有一个输入指令,应该允许用户撤消。
输入使用某个函数保存值, Esc 取消上次保存的编辑。
对于 Esc 按键事件我正在使用ngmodel.$setViewValue(scope.last_saved_value)
,但输入未更新。我从docs知道这个函数没有触发$digest
所以我把它放在$apply
中但是它仍然不起作用。
答案 0 :(得分:37)
在ngmodel.$render();
之后尝试拨打$setViewValue
,这应该有帮助。
答案 1 :(得分:2)
我通常都包含并要求ngModel
:
app.directive('cancelableInput', function($timeout) {
return {
restrict : "A",
require : 'ngModel',
scope: {
ngModel: '=?'
},
然后,当您想要更改模型值并让它更新时,您可以这样做:
scope.$apply(function() {
scope.ngModel = scope.last_saved_value;
});