AngularJS 1.3模式验证绑定无法正常工作

时间:2015-07-09 16:23:20

标签: angularjs ng-pattern angularjs-bindings

我一直在使用AngularJS的Regex模式验证来完成最后几个版本,并且它运行良好。

我的应用程序要求验证模式由scope属性公开,相应的AngularJS验证指令绑定到该属性。在v1.3之前,它看起来像这样:

// On the controller
$scope.validationPattern = "^\\d*$"; // Allow only numeric digits

<!-- in the HTML page --->
<input type="text" name="age" ng-pattern="/{{validationPattern}}/" />

现在已经将AngularJS更新为v1.4(绕过v1.3),我发现上述方法不再有效。看看migration notes for v1.3,我发现这是预期的行为,需要一种新的方法,看起来像这样:

// On the controller
$scope.validationRegexp = /^\d*$/; // Use a RegExp instead of a string

<!-- in the HTML page --->
<input type="text" name="age" pattern="{{validationRegexp}}" />

然而,我根本无法让它发挥作用。如果我将验证模式置于内联(在HTML输入元素中),它可以正常工作,但是当移动到范围对象并绑定到patternng-pattern指令时,不会进行验证。

Here's a JSFiddle证明了这个问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您应该只使用范围变量的名称:

<input type="text" name="age" ng-pattern="validationPattern" />