由于某种原因,初始化值不会出现在字段中,但是没有ng-pattern的第二个字段确实起作用。有任何想法吗?
angular.module('app', []).controller('MainCtrl', function($scope) { $scope.widget = {title: 'abc', title2: 'abc'}; }); <div ng-app="app" ng-controller="MainCtrl"> <input ng-model="widget.title" required ng-pattern="/[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/"> <br /><br /> input 1: {{ widget.title }} <br /><br /> <input ng-model="widget.title2" required> <br /><br /> input 2: {{ widget.title2 }} </div>
这是小提琴 http://jsfiddle.net/wkzab/1/
更新
我仔细研究了一下(从未真正使用过Angular),并且通过使用name表单和输入上的属性,您可以捕获一个错误,如我最新的JSFiddle所示。其格式为:{{formName.inputName.$error}}。这将返回参数等于布尔值的对象。所以{{form.title.$error.pattern}}会true在有正则表达式(所以你会显示错误)的错误。我还将您的正则表达式清洗(工作原理相同)为:/^[A-Z]{4}\d{6}[A-Z\d]{3}$/i。
name
{{formName.inputName.$error}}
{{form.title.$error.pattern}}
true
/^[A-Z]{4}\d{6}[A-Z\d]{3}$/i
旧
该ng- pattern属性尝试根据此正则表达式匹配字段/[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/。这将转换为4个字母字符,6个数字和3个字母数字字符。一旦有了匹配的模式,它将显示出来。
ng- pattern
/[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/
您应该能够删除ng- pattern属性或将表达式更改为不太具体。例如,只要整个字符串是字母数字,此JSFiddle将接受任何值。如果您需要其他模式的帮助,请更新问题。