ng-repeat仅显示最终元素

时间:2013-07-15 23:03:35

标签: html web-applications angularjs angularjs-ng-repeat

我在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问题的接受答案中建议的那样,在第二个要点中?这超出了我的理解范围,所以如果有人能指出我正确的方向去了解更多,我会很感激!

1 个答案:

答案 0 :(得分:1)

尝试从div的id属性“工作簿列表”中删除空格。

你可以: <div id="list-of-workbooks" ...>

另外,看看: What are valid values for the id attribute in HTML?