我在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;
这可能与角度侦听模型中的更改有关,正如this问题的接受答案中建议的那样,在第二个要点中?这超出了我的理解范围,所以如果有人能指出我正确的方向去了解更多,我会很感激!
答案 0 :(得分:1)
尝试从div的id属性“工作簿列表”中删除空格。
你可以:
<div id="list-of-workbooks" ...>