予約リストを印刷するアプリケーションがあります。2 つのルートがあります。
reservations.allReservations
reservations.newReservations
問題:
allReservations ルートは正常に機能します。予約を削除または追加すると、ページに自動的に反映されます。ただし、 newReservations ルートは変更時に更新されませんが、ページをリロードすると変更が反映されます。
セットアップ:
2 つの主な違いは、ルート モデル フィールドです。allReservation ルートの場合:
App.Reservations.all();
newReservation ルートの場合:
App.Reservations.all().filterProperty('isNew',true);
アプリケーション モデルとデータ ストアは、Ember.js バージョンの TodoMVC アプリと同様にセットアップされます。
ルート:
App.ReservationsNewReservationsRoute = Em.Route.extend({
model: function(){
return App.Reservation.all().filterProperty('isNew', true);
},
renderTemplate: function(){
this.render('reservationList');
},
});
コントローラ:
App.ReservationsNewReservationsController = Ember.ArrayController.extend({
isEmpty: function() {
return this.get( 'length' ) == 0;
}.property( '@each.length', '@each.isNew'),
});
テンプレートreservationList.hbs:
{{#if isEmpty}}
<li>
<div class="text-center" style="height: 40px; margin: auto 0;">
<label>No Reservations!</label>
</div>
</li>
{{/if}}
{{#each controller}}
... print reservations ...
{{/each}}