0

html で ng-repeat を使用して、スコープにある配列内の各「ワークブック」オブジェクトのタイトルを表示しています。なぜか3番目のタイトルが3回表示されています。このテスト リストには 3 つのオブジェクトがあるため、正しい回数反復処理を行っています。テンプレートの 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

私のエラーは構文にありますか? ありがとう!

EDIT:リストの作成時にエラーが発生する可能性もあります。各タイトルは XML ドキュメントから読み取られ (呼び出しの長いチェーンが正しいタイトルを返します)、リストに追加される Workbook (カスタム サービス) のタイトルを設定するために使用されます。このコードにエラーはありますか? アプリケーションモジュールからです。

        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;

この質問の受け入れられた回答の2番目の箇条書きで示唆されているように、angularがモデルの変更をリッスンする方法と関係があるのでしょうか? それは私の理解の範囲をかなり超えているので、誰かが私を正しい方向に向けてもっと学ぶことができれば幸いです!

4

1 に答える 1

1

div の id 属性「List of Workbooks」からスペースを削除してみてください。

あなたが持つことができます: <div id="list-of-workbooks" ...>

また、以下もご覧ください: HTML の id 属性の有効な値は何ですか?

于 2013-07-15T23:12:03.113 に答える