2016-05-01 18 views
0

私はフォーム用のいくつかのコンポーネントを書いています。これらは、Grails <g:include>タグを使って複数の場所(登録ページとアカウントページ)に含まれます。 Angularが動作する方法では、特定のフィールドへの参照を取得するためにフォーム名を指定する必要があります。例:上記の例で相対モデル参照?

<form name="myForm"> 
    <input ng-model="username"/> 
    {{myForm.username}} -- right here 
</form> 

、私はusernameにアクセスするためにmyFormを使用する必要があります。これは、フォーム名が変更されるため、複数のフォームで同じフィールドを使用する場合は機能しません。

フィールドに比較的アクセスしたり、囲んでいるフォーム名を見つけ出して注入する方法はありますか?

答えて

0

ダイナミックフォームの名前コードを使用する必要があります。例えば

<div ng-repeat="myForm in forms"> 
    <form name="myForm{{$index}}"> 
     <input ng-model="myForm.username"/> 
     {{myForm.username}} -- right here 
    </form> 
</div> 

例コードなしで正確な問題を解決することは困難ですが、分析できるプランカまたはコードペインを作成します。

+0

(ページごと)一形態のみであり、フォーム名は、ページに依存します。インクルードされたフィールドは、使用するフォーム名を知る必要があります。 –

1

フォームの名前を参照する必要はありません。あなたのコントローラの$scopeのプロパティにバインドするだけでいいです。このようにすると、フォーム名が何であるか気にする必要はなく、コントローラに必要なプロパティがあるだけです。

<form ng-controller="yourController"> 
    <input ng-model="username"/> 
    {{ username }} 
</form> 

angular.controller('yourController', ['$scope', function($scope){ 
    $scope.username = 'keanu reeves'; 
}]); 

Here's a code pen.

関連する問題