如果用户输入无效(空)字符串,我需要创建一个预先填充的文本字段,该字段将重置为其初始值。为实现这一点,我有以下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>
现在,我的问题是只有top指令(ng-blur或ng-focus)实际上是活动的。换句话说,这里将调用updateValueFor(),而不是storeValueFor()。如果我改变它以使ng-focus位于顶部,那么将是另一种方式。
我找到了这个组合here的一个工作示例,但是当我用这里看到的内联函数替换我的函数调用时,行为仍然存在。
有没有人知道会导致这种情况的原因?
编辑:事实证明,此行为仅显示在我用于开发的Chrome实例上,因此安装了AngularJs Batarang。禁用此扩展程序可以解决此问题。有人能告诉我为什么会这样吗?
答案 0 :(得分:1)
事实证明,这种行为只会出现在我用于开发的Chrome实例上,因此安装了AngularJs Batarang。禁用此扩展程序可以解决问题。