2013-10-09 48 views
0

我有一个NG-重复内产生的几种形式:参考变量形式名称

<div class="familyMembers" data-ng-repeat="member in familyMembers"> 
    ... 
    <form class="familyMemberEdit" name="familyMemberEdit_{{ member.spid }}" novalidate> 
    ... 
    </form> 
    ... 
</div> 

在相应的控制器我想检查$脏每个这些形式:

... 
var a = ''; 
var condition = false; 
angular.forEach($scope.familyMembers, function(value, key) { 
    a = 'familyMemberEdit_' + value.spid; 
    condition = condition || $scope[a].$dirty; 
}); 
return condition; 

参照$scope[a]返回undefined。在这种情况下,我应该如何参考$scope.familyMemberEdit_1234

+1

'NG-repeat'创建一个新的范围,因此,所述形式是不可用对父范围。 – Chandermani

+0

好的,有没有其他的方式来检查这些表单是否被改变(我只想显示保存按钮,当有变化被保存) –

+0

将是很好,如果你张贴一些小提琴/ Plunker –

回答

0

我可以给一个解决方法,我还没有测试过。您需要将创建的表单推送到父范围的数组中。 ng-init上的表单的HTML可用于我认为

<form class="familyMemberEdit" name="familyMemberEdit_{{ member.spid }}" novalidate ng-init="addForm(this['familyMemberEdit_'+member.spid])"> 

在控制器

$scope.addForm=function(form) { 
    forms.add(form); 
} 
.