2016-05-01 80 views
0

我正在爲一個表單編寫一些組件,這些將包含在多個位置(註冊頁面和帳戶頁面)(通過Grails <g:include>標籤)。 Angular的工作方式,我必須指定表單名稱以獲得對特定字段的引用。例如:相對模型參考?

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

在上面的例子中,我必須按順序使用myForm訪問username。在多個表單中使用相同的字段時,這將不起作用,因爲表單名稱將會更改。

有沒有辦法相對地訪問該字段,或者可能找出封閉的表單名稱並注入它?

回答

0

您必須使用某種形式的動態表單名稱代碼。例如

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

儘管沒有示例代碼很難解決確切的問題。創建一個我們可以分析的plunker或codepen。

+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.