动态添加ng模式,缺少验证类
Dynamically adding ng-pattern, missing validation classes
我正在尝试从指令中动态添加和删除"ng模式"属性。这是我的指示:
ap.directive('myDirective', ['$compile', function ($compile) {
return {
scope: { test: "=myDirective" },
link: function ($scope, element, attrs) {
$scope.$watch('test', function () {
if (someCondition) {
element.removeAttr("ng-pattern");
} else {
element.attr("ng-pattern", "/^([0-9]{5})$|^([0-9]{9})$/");
}
});
}
};
}]);
以及来自html:的输入标签
<form name="myform" novalidate>
<input name="test" required class="form-control" ng-model="myModel" my- directive="someValueFromScope"/>
</form>
如果我从Chrome开发工具中检查DOM元素,"ng模式"属性会添加到输入标记中,但不会添加验证类(ng无效模式或ng有效模式)。如果我直接从html中添加"ng模式",那么一切都会按预期进行。
使用$compile和$set进行如下操作:-
attrs.$set("ng-pattern", "/^([0-9]{5})$|^([0-9]{9})$/");
$compile(element)($scope);
使用$observe方法而不是$watch
attrs.$observe('test', function () {
//do something
});
我终于明白了,编译父作用域就成功了。
$compile(element)($scope.$parent)
相关文章:
- jQuery工具验证器自定义效果-添加&消除影响
- javascript中添加验证电子邮件的问题
- 在验证器中添加自定义规则以检查<ul>具有元素
- jQuery验证器添加方法未定义
- 添加@javascript标记时,Cucumber中的HTTP身份验证失败
- 如何将此验证添加到表单中
- 通过javascript向表单动态添加验证
- 为什么 MVC4 验证 js 自动将数字验证添加到日期时间
- 我将 javascript 验证添加到我的登录控件中,尽管存在错误
- 如何将电话号码和电子邮件验证添加到Kendo-UI Grid
- 将自定义验证添加到角度文本区域
- simpleCart(js)将表单输入验证添加到电子邮件结账提交中
- 表单验证-添加/删除Jquery动态添加的内容
- 向Facebook身份验证添加两个URL
- 向验证添加输入
- 我的jquery验证添加方法密码规则的问题
- 使用Jquery验证添加自定义错误消息
- 如何最好地将客户端验证添加到这两个字段中
- 将 JavaScript 最小长度验证添加到文本字段
- 向Javascript验证添加警报