我只想以这种方式验证项目中的文本框,以便用户无法输入除字符之外的任何值。
答案 0 :(得分:2)
<强>的hackish?方式,$在你的控制器中观察ng-model:
<input type="text" ng-model="myText">
控制器:
$scope.$watch('myText', function() {
// put logic to strip out all non-character characters here
if ($scope.myText ... regex to look for ... ) {
// strip out the non-characters
}
})
最佳方式,在指令中使用$ parser。 我不打算重复@ pkozlowski.opensource提供的已经很好的答案,所以这里是链接:https://stackoverflow.com/a/14425022/215945
不要尝试使用ng-change - 它会导致问题。见AngularJS - reset of $scope.value doesn't change value in template (random behavior)
<强>更新强> ng-pattern也可用于定义将限制字段中允许的内容的正则表达式。另请参阅"cookbook" page about forms。