我在我的 html 中使用 ng-repeat 在范围内的数组中显示每个“工作簿”对象的标题。由于某种原因,第三个标题被显示了三次。此测试列表中有三个对象,因此它正在迭代正确的次数。这是模板html代码:
<div id="list-of-workbooks" ng-controller="TableauListCtrl" class="ng-scope" >
<ul>
<li ng-repeat="workbook in workbooks" ng-click="clickWorkbook(workbook)" ng-mouseover="mouseoverWorkbook(workbook)" class="ng-binding"> {{ workbook.getTitle() }} </li>
</ul>
</div>
输出如下所示:
Workbook 3 Title
Workbook 3 Title
Workbook 3 Title
我的语法错误吗?谢谢!
编辑:创建列表时也可能发生错误。每个标题都是从 XML 文档中读取的(一长串调用返回正确的标题),并用于设置工作簿(自定义服务)的标题,然后将其添加到列表中。这段代码有错误吗?它来自应用程序模块。
var title;
var workbooks = [];
for (var i = 0; i < workbooksData.length; i++) {
var workbook = Workbook;
title = workbooksData[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
workbook.setTitle(title);
workbooks[i] = workbook; // add a workbook with each title to the array of Workbooks
}
return workbooks;
它是否与角度监听模型变化的方式有关,正如这个问题已接受的答案中所建议的那样,在第二个要点中?这超出了我的理解范围,所以如果有人能指出我正确的方向以了解更多信息,我将不胜感激!