ngBlur 和 ngFocus 不能一起工作

ngBlur and ngFocus will not work together

我需要制作一个预填充的文本字段,如果用户输入无效(空)字符串,它会重置为初始值。为此,我有以下 javascript:

  $scope.storeValueFor = function(object) {
    if(object && object.value) {
      $scope.fallback = object.value;
    }
  };

  $scope.updateValueFor = function(holder, object) {
    if(object.value && object.value.length > 0) {
      update(holder, object);
    } else {
      object.value = $scope.fallback;
    }
  };

我希望在字段获得焦点时调用 storeValueFor(),在失去焦点时调用 updateValueFor()。这是我的相关部分 HTML:

          <input ng-model="object.value"
                 ng-show="!hideInput()"
                 ng-blur="updateValueFor(holder, object)"
                 ng-focus="storeValueFor(object)"
                 ng-minlength="1">
          <span ng-bind-html="formatString(object.value)" ng-hide="hideInput()"></span>

现在,我的问题是只有顶级指令(ng-blur 或 ng-focus)实际上处于活动状态。换句话说,这里会调用 updateValueFor(),而不是 storeValueFor()。如果我更改它以便 ng-focus 位于顶部,则相反。

我找到了这个组合的一个工作示例 here,但是当我用此处看到的内联函数替换我的函数调用时,行为仍然存在。

有谁知道是什么原因造成的?

编辑:事实证明,此行为仅出现在我用于开发的 Chrome 实例上,因此安装了 AngularJs Batarang。禁用此扩展可以解决问题。谁能告诉我为什么会这样?

事实证明,此行为仅出现在我用于开发的 Chrome 实例上,因此安装了 AngularJs Batarang。禁用此扩展程序可解决问题。