0

我在我的 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;

它是否与角度监听模型变化的方式有关,正如这个问题已接受的答案中所建议的那样,在第二个要点中?这超出了我的理解范围,所以如果有人能指出我正确的方向以了解更多信息,我将不胜感激!

4

1 回答 1

1

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

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

另外,请看一下: HTML 中 id 属性的有效值是什么?

于 2013-07-15T23:12:03.113 回答