我正在尝试为一个input
元素创建一个指令,该指令将动态创建一个ng-pattern
以检查输入字段中的有效 IP 地址。我所有的尝试都完全失败了。虽然我可以动态修改其他属性,但我无法创建ng-pattern
会影响$valid
状态的属性。
这是我一直在处理的代码,它看起来应该可以工作,但它对ng-pattern
.
app.directive('ipAddress', function($parse) {
return {
link: function(scope, element, attrs) {
var model = $parse(attrs.ngPattern);
model.assign(scope, "/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/");
scope.$apply();
};
});
指示:
<input ng-model="ip" ip-address required type="text" id="inputIP" placeholder="xxx.xxx.xxx.xxx">
是的,我知道我可以只ng-pattern
用标签指定内联,<input>
但关键是我希望能够在代码中动态地做到这一点,我想<input>
通过不在那里嵌入一堆正则表达式代码来保持标签更干净.
谁能帮帮我吗?谢谢!