1

スコープ内に pattern というオブジェクト ノードがあります。設定されている場合は、パターンを入力フィールドのパターン属性として 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 に答える