34

jsfiddle http://jsfiddle.net/KfSBq/

サブオブジェクトとは、ng-repeat で表示しているすべてのオブジェクトにオブジェクトのリストが含まれていることを意味し、それらのサブオブジェクトの 1 つのプロパティに基づいてフィルタリングしようとしています。

これだけでも簡単にできました。のオブジェクトがありdailies、それぞれにとオブジェクトdateentriesリストが含まれています。

function Ctrl($scope) {
    $scope.dailies = [{date: new Date('07/07/2013'), 
                       entries: [{category: 'A', note:'Lorem ipsum'}, 
                                 {category: 'B', note: 'Lorem ipsum'}]},
                      {date: new Date('05/02/2013'), 
                       entries: [{category: 'A', note: 'Lorem ipsum'}]}];
}

カテゴリ別にフィルタリングして表示します。

<div ng-controller="Ctrl">
        <div class="daily" ng-repeat="daily in dailies | orderBy:'-date' ">
            {{ daily.date | date:'dd/MM/y' }}
            <div class="entry" ng-repeat="entry in daily.entries | filter:{ category: 'B'} ">
                <span>{{ entry.category }}</span>, <span>{{ entry.note }}</span>
            </div>
        </div>
    </div>

ここでの問題は、エントリがまったく含まれていない日次オブジェクトがまだ表示されていることです。フィルタリングによって空のentriesリストが作成された場合、それも表示されないという状況をどのように達成できますか?dailydaily

4

1 に答える 1