gpt4 book ai didi

angularjs - 如何将 Escape 上的输入字段重置为以前的值

转载 作者:行者123 更新时间:2023-12-01 06:22:36 25 4
gpt4 key购买 nike

当按下转义键时,将输入字段设置为其先前值的正确方法是什么?

我找到了这个指令:

.directive('resetWithEsc', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function(scope, element, attrs, controller) {
element.on('keydown', function(ev) {
if (ev.keyCode != 27) return;

scope.$apply(function() {
controller.$setViewValue("");
controller.$render();
});
});
}
};
})

但它说 TypeError: Cannot read property '$setViewValue' of null
我也尝试存储上一个。 $scope.temp 中的值和用于检测 ESC 按下的指令:
.directive('escKey', function () {
return function (scope, element, attrs) {
element.bind('keyup', function (event) {
console.log("UP");
if(event.which === 27) { // 27 = esc key
console.log("ESC");
scope.$apply(function (){
scope.$eval(attrs.escKey);
});
event.preventDefault();
}
});
};
})

然后我像这样使用它:
<input data-ng-focus="temp = mymodel.value"
ng-model-options="{updateOn: 'blur'}" esc-key="mymodel.value = temp"
type="text" data-ng-model="mymodel.value"
/>

它检测到正确的转义键,如果我设置 esc-key="mymodel.value = 'TEST'"它还将输入字段设置为 'TEST' ,但是对于变量它不起作用。

那么这样做的最佳选择是什么?我需要它动态用于重复循环。

最佳答案

移除 updateOn: 'blur'和重置 temp成功了……

<input data-ng-focus="temp = mymodel.value"
esc-key="mymodel.value = temp; temp='';"
type="text" data-ng-model="mymodel.value"
/>

仍然会对更清洁的解决方案感到高兴,因为实际上只在模糊时更新模型。

关于angularjs - 如何将 Escape 上的输入字段重置为以前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31946161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com