0

次の方法で Javascript オブジェクトを作成しました。

$scope.initNews = function () {
    for (var i = 2013; i > 2000; i--) {
        $scope.news[i] = {};
        $scope.news[i]["year"] = Number(i);
        for (var j = 1; j <= 12; j++) {
            $scope.news[i][j] = {};
            $scope.news[i][j]["month"] = $scope.month_names[j-1];
        }
    }
};

しかし、 ng-repeat は、アイテムをループする方法を台無しにしているようです。

<ul ng-repeat="old_news_year in news">{{old_news_year.year}}
    <li ng-repeat="old_news_month in old_news_year">{{$index + 1}}. {{old_news_month.month}}</li>
</ul>


サンプル全体については、http://jsfiddle.net/tFewZ/1/を確認してください。

EDIT
私は、AngularJSがJavascriptインデックスではなく、$$hashKeyに従ってエントリをループしているという印象を受けています...


13番目の要素についてはまだわかりませんが...これはprototype属性ですか?

前もって感謝します。

敬具、
ギヨーム

4

1 に答える 1

1

解決策は、コレクション アプローチ ('in') の代わりに $index を使用することです。

<ul ng-repeat="old_news_year in news">{{old_news_year.year}}
    <li ng-repeat="old_news_month in old_news_year">
      {{$index + 1}}. {{old_news_year[$index+1].month}}
    </li>
</ul>

チェック: http://jsfiddle.net/guillaume1978/XmSTK/2/

于 2013-09-02T09:59:45.617 に答える