我创建了一个角色Value
服务,它包含一个正则表达式而不是我将它附加到控制器实例上,即
myService.value('regexValue' {PASSWORD_REGEX: /passwordregex/})
myController(regexValue) {
this.regexValue = regexValue.PASSWORD_REGEX;
}
然后我尝试在输入字段data-ng-pattern
属性
<input type="password" data-ng-pattern="myController.regexValue.PASSWORD_REGEX">
但这似乎不适用于ng-pattern指令。
我的问题是如何才能让它发挥作用?
答案 0 :(得分:2)
你的理论是正确的。 ng-pattern
接受模式的字符串表示,内联模式或范围变量。唯一的问题是你在控制器下面的regexValue.PASSWORD_REGEX作为controller.regexValue,然后发抖以访问controller.regexValue.PASSWORD_REGEX。
要么:
myController(regexValue) {
this.regexValue = regexValue.PASSWORD_REGEX;
}
<input type="password" data-ng-pattern="myController.regexValue">
或
myController(regexValue) {
this.regexValue = regexValue;
}
<input type="password" data-ng-pattern="myController.regexValue.PASSWORD_REGEX">
答案 1 :(得分:1)
ng-pattern想要一个模式的字符串表示(没有/),所以你可以通过访问source
属性从正则表达式中获取它:
<input type="password" data-ng-pattern="myController.regexValue.PASSWORD_REGEX.source">
console.log(/foo+bar*?/.source)
&#13;