Javascript 防止在AngularJS中达到一定长度后从文本框中删除字符串

Javascript 防止在AngularJS中达到一定长度后从文本框中删除字符串,javascript,angularjs,string,dom-events,Javascript,Angularjs,String,Dom Events,我想防止用户从AngularJS的文本框中删除一定长度的字符串 我想在文本框中固定一些文本,如“abcd”,以便用户无法删除它。它的行为类似于预字符串 为此,我用ng init初始化了文本框,并在keyup事件中检查字符串的长度,如果它小于预定义的大小,则我将字符串放回ng模型中 它的工作没有错误,但并不顺利。我想防止在从文本框中删除文本时,如果文本达到指定长度,则按退格或删除按钮 我不熟悉AngularJS 这里是链接 HTML <body ng-app="myApp1"> &

我想防止用户从AngularJS的文本框中删除一定长度的字符串

我想在文本框中固定一些文本,如“abcd”,以便用户无法删除它。它的行为类似于预字符串

为此,我用ng init初始化了文本框,并在keyup事件中检查字符串的长度,如果它小于预定义的大小,则我将字符串放回ng模型中

它的工作没有错误,但并不顺利。我想防止在从文本框中删除文本时,如果文本达到指定长度,则按退格删除按钮

我不熟悉AngularJS

这里是链接

HTML

<body ng-app="myApp1">
  <div ng-controller="myController">
    <div ng-app>
      <label>Key:</label>
      <input type="text" name="key" ng-model="key" ng-init="key = 'abcd'" ng-keyup="updateKey($event)">
    </div>
  </div>
</body>

关键:
AngularJS

(function(angular) {
  'use strict';
  var myApp = angular.module('myApp1', []);

  myApp.controller('myController', ['$scope', function($scope) {
    $scope.updateKey = function($event) {
      var len = $scope.key.length;
      if ($event.keyCode === 8 && len < 4) {
        $scope.key = "abcd";
      }
    };
  }]);
})(window.angular);
(函数(角度){
"严格使用",;
var myApp=angular.module('myApp1',[]);
myApp.controller('myController',['$scope',函数($scope){
$scope.updateKey=函数($event){
var len=$scope.key.length;
如果($event.keyCode==8&&len<4){
$scope.key=“abcd”;
}
};
}]);
})(窗口角度);

我认为您可以为
$scope.key

$scope.$watch('key', function(newValue, oldValue) {
  console.log(oldValue, newValue);
  if(newValue.length < 4) {
    $scope.key = 'abcd';
  }
});
$scope.$watch('key',函数(newValue,oldValue){
console.log(oldValue、newValue);
如果(newValue.length<4){
$scope.key='abcd';
}
});
每次更改模型时,watcher函数都将调用,因此当您更改模型时,angular函数将调用此函数,在函数中,我们可以获得
旧值和
新值,在此基础上,您可以尝试实现您想要实现的目标


以下是在指令中使用ngModel解析器的需求。许多条件,比如你不考虑的粘贴,或者用户只是把光标放进去part@charlietfl你能提供一些例子吗?见文件中的例子。。或者谷歌搜索你真的想要这样一个strage UI experiecen,或者验证最小长度也可以吗?@billc.cn我在jQuery中看到过这样的例子,如果我提供最小长度,那么我必须在失去焦点或表单提交时做,这是我不想要的。谢谢@K.Toress我试过了,但是我得到了错误newValue未定义如果你检查演示它在演示中工作正常,请删除
ng keyup
它工作正常,我在newValue.lengthgal之前添加了检查newValue空值的代码以帮助你:)谢谢