2016-05-01 89 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.