Angularjs - 设置视图值不更新显示

时间:2014-04-05 07:43:31

标签: angularjs angular-ngmodel

我有一个输入指令,应该允许用户撤消。

输入使用某个函数保存值, Esc 取消上次保存的编辑。

对于 Esc 按键事件我正在使用ngmodel.$setViewValue(scope.last_saved_value),但输入未更新。我从docs知道这个函数没有触发$digest所以我把它放在$apply中但是它仍然不起作用。

JSBIN example

2 个答案:

答案 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;
});