1

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

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

例如,如果我将其作为内容放在<p>-tag 中,则此方法有效,但是当我尝试将其放在输入节点中时,它说我的控制器未定义:Argument 'Invite' is not a function, got undefined

我也发现了这个

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

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

4

1 回答 1

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示例。

于 2013-09-12T16:02:35.983 回答