ng-pattern不适用于角度动态添加的输入标记

时间:2016-02-11 06:38:59

标签: javascript angularjs

当我将ng-pattern插入div时,我在ng-pattern变量中有一个输入标记

式:

.from_fields {
    transition: all linear 0.5s;
    background: transparent;
}
.from_fields.ng-invalid {
    color: white;
    background: red;
}

脚本

$scope.input='<input type="text" ng-pattern="/^[0-9]{1,7}$/" class="from_fields">';
angular.element(document.getElementById('test')).html($scope.input);
有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您尝试输入的字符串需要针对angular进行编译,以便将其置于监视列表中并评估任何ng属性。

现在ng-pattern是一个常规的自定义数据属性,对于角度

没有任何意义

如果你不想在角度控制器中绑定,只需删除ng -

离开

'<input type="text" pattern="^[0-9]{1,7}$" class="from_fields">';

请注意,pattern属性不需要斜杠

否则你必须在控制器中导入$ compile服务

并在给定$ scope变量

的情况下编译字符串
var input = '<input type="text" ng-pattern="^[0-9]{1,7}$" class="from_fields">';
var compiled_input = $compile(input)($scope)

并将其附加到文档

angular.element(<selector>).append(input);