Angularjs 解析指令中绑定的ng模式时,angular js中出现$parse:ueoe错误
我有一个指令,它绑定一个字符串作为指令本身中的ng模式应用,但是当呈现它时,它会给出一个UEOE错误 该指令的定义如下:Angularjs 解析指令中绑定的ng模式时,angular js中出现$parse:ueoe错误,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个指令,它绑定一个字符串作为指令本身中的ng模式应用,但是当呈现它时,它会给出一个UEOE错误 该指令的定义如下: myApp.directive('myDirective', Directive); function Directive() { var directiveDefinition = { restrict: 'E', require: 'ngModel', replace: true, transclu
myApp.directive('myDirective', Directive);
function Directive() {
var directiveDefinition = {
restrict: 'E',
require: 'ngModel',
replace: true,
transclude: false,
link: function (scope, element, attrs, ngModelCtrl) {
},
scope: {
myPattern:'@',
},
templateUrl: 'template.htm'
};
return directiveDefinition;
}
带模板
<div>
<form name=myForm>
<input type='text' ng-model='ngModel'
ng-model-options="{ updateOn:'blur', allowInvalid: true }"
ng-pattern="{{myPattern}}" />
</form>
</div>
它在视图中的用途如下:
<my-directive ng-model="someValue" my-pattern="[a-z]+"></my-directive>
给出错误
angular.min.js:2错误:[$parse:ueoe]
如果我将正则表达式更改为没有“特殊”字符,这很好,但是对于任何具有复杂正则表达式的内容,它都不起作用,例如,我为正则表达式[a-Za-z0-9]获得一个lexerr+
有没有一种方法可以将这样一个正则表达式传递给一个指令,以便成功地解析它
顺便说一句,ng模式工作正常,但我怀疑看到的其他意外行为是连锁效应。从文档中可以看出,ng模式在大多数情况下都需要角度表达式,而不是插值ex
ng pattern=“myPattern”
。如果使用插值,则最终结果必须是regex literal form ex./abc/
发件人:
该值是AngularJS表达式:
如果表达式的计算结果为RegExp对象,则直接使用它
如果表达式的计算结果为字符串,则在将其包装为^和$字符后,它将转换为RegExp。对于
实例“abc”将转换为新的RegExp(“^abc$”)
如果该值是RegExp文本,例如ngPattern=“/^\d+$/”,则直接使用该值
ngPattern
必须计算为RegExp或字符串的AngularJS表达式
可解析为RegExp或RegExp文本。详见上文
细节
ng pattern=“[a-z]+”
生成$parse:ueoe错误。为什么您希望my pattern=“[a-z]+”
的行为会有所不同?