我一直试图解决这个角度ng-repeat问题但是得到了这个错误
不允许在转发器中重复。 Repeater:project.documentConfig.documents中的document by document.Name key:undefined
Html:
x=2
如果我将其更改为按$ index
进行追踪<tr ng-repeat="project in translatorHubConfig.projects">
<td>{{ project.ProjectName }}</td>
<td>{{ project.SourceLanguage }}</td>
<td>{{ project.TargetLanguage }}</td>
<td>{{ project.Status }}</td>
<td>
<div ng-repeat="document in project.documentConfig.documents track by document.Name">
<label>
<input type="radio" value="{{document.Name}}" ng-model="project.documentConfig.documents" />
<a ng-href="{{document.documentUrl}}" style="cursor: pointer;">{{ document.Name }}</a>
</label>
</div>
</td>
<td></td>
<td><span class="train-project" ng-click="TrainProject(project.ProjectName, project.documentConfig.documents)" /></td>
</tr>
每次点击单选按钮都会产生这个:
响应:
<td>
<div ng-repeat="document in project.documentConfig.documents track by $index">
<label>
<input type="radio" value="{{document.Name}}" ng-model="project.documentConfig.documents" />
<a ng-href="{{document.documentUrl}}" style="cursor: pointer;">{{ document.Name }}</a>
</label>
</div>
</td>
我不太确定我做错了什么。 Tqvm in advanced。
答案 0 :(得分:1)
在ng-repeat中使用track by $index
,或者您可以使用具有所有唯一值的密钥。
答案 1 :(得分:0)
您无法使用将获得重复值的键来跟踪NG转发器,因此正确的方法是使用$ index,或者如果文档没有重复的对象,则无需跟踪。但是读取错误就像数组中的某些对象有未定义的'name'键,这就是为什么你有空的单选按钮。我没有得到你的问题,你期望发生什么?
答案 2 :(得分:0)
我不确定,但是问题是ng-model =“ project.documentConfig.documents” 当您单击单选按钮project.documentConfig.documents得到更新,并且ng-repeat尝试根据project.documentConfig.documents重新呈现html