6

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

Enter使用某些功能保存值,Esc取消上次保存的编辑。

对于Esc我正在使用ngmodel.$setViewValue(scope.last_saved_value)输入未更新的按键事件。我从文档中知道这个功能不会触发$digest,所以我把它放在一个$apply但它仍然不起作用。

JSBIN 示例

4

2 回答 2

39

ngmodel.$render();打完电话试试$setViewValue,应该有帮助。

于 2014-04-07T09:06:30.727 回答
2

我通常包括并要求ngModel

app.directive('cancelableInput', function($timeout) { 
  return { 
    restrict : "A",
    require : 'ngModel', 
    scope: {
      ngModel: '=?'
    },

然后,当您想更改模型值并对其进行更新时,您可以这样做:

scope.$apply(function() {
  scope.ngModel = scope.last_saved_value;
});
于 2014-04-05T08:03:13.123 回答