如果定义了模式,设置字段模式?

时间:2013-09-12 13:31:37

标签: angularjs

我的范围内有一个名为pattern的对象节点。如果已设置,我想将模式添加到DOM作为输入字段的模式属性。我试过这个:

{{field.pattern && 'pattern='+field.pattern}}

如果我把它作为内容放在<p> - 标签中,但是当我尝试将它放在输入节点中时,它表示我的控制器未定义:Argument 'Invite' is not a function, got undefined

我也找到了这个

ng-attr-pattern="{{field.pattern && field.pattern}}"

但是,如果模式未定义,则会添加空模式属性,这会使表单无效。

1 个答案:

答案 0 :(得分:1)

您可以使用ng-pattern代替默认模式:

<强>的Javascript

function Ctrl($scope) {
  $scope.pattern1 = /^[0-9]+$/;

  $scope.getFooPattern = function() {
    return $scope.pattern1 || /.*/;
  };
}

<强> HTML

<form name="form" novalidate>
  <input type="text" ng-model="foo" name="foo" ng-pattern="getFooPattern()">
</form>

jsFiddle示例。