ngModelCtrl - $setViewValue 没有 $setDirty();

str*_*eld 5 javascript angularjs angularjs-directive angular-ngmodel

我有一个指令,它通过 ngModelCtrl.$setViewValue() 在模糊上操作输入字段的 $viewValue。

function _onFocus () {
    presentation = false;
    if(!ctrl.$isEmpty(ctrl.$modelValue)) {
      ctrl.$setViewValue(String(ctrl.$modelValue).replace(/\./, ','));
      ctrl.$render();
    }
  }
Run Code Online (Sandbox Code Playgroud)

普朗克

由于这只是外观问题,我想知道是否有可能在不改变输入字段本身的 $pristine/$dirty 状态的情况下设置 ViewValue。

参考 Angular:$commitViewValue 上的 $setDirty

PSL*_*PSL 3

我可能会设置value元素的 ,而不是设置视图值并全部渲染,因为这只是手动注册事件上发生的外观事情,并且您不必使用 ngmodel 的验证属性。

IE:

  function _onBlur () {
     //....
      $element.val(_formatCurrency(ctrl.$modelValue));
  }

  function _onFocus () {
     //...
     $element.val(String(ctrl.$modelValue).replace(/\./, ','));
  }
Run Code Online (Sandbox Code Playgroud)

普林克尔