将ItemView中的CollectionView与牵线木偶集成

时间:2015-07-11 19:43:40

标签: jquery backbone.js marionette

我有一个显示房间的应用程序,每个房间都会显示这个房间的预订。

所以,我有:

  • 我的应用( BtApp
    • RoomsCollectionView ,显示RoomView ItemsViews(来自RoomsCollection)
    • 多个 RoomView ,显示房间信息
      • ReservationsCollectionView ,它应显示房间的所有预订
        • 几个 ReservationView ,应显示有关预订的信息

绘图会更清楚(ul.reservations是我要渲染ReservationsCollectionView视图的地方:

the architecture 在RoomView的 onRender 中,我尝试像这样呈现RoomCollectionView:

var RoomView = Marionette.ItemView.extend({      
    ui: {
        $reservationsList: 'ul.reservations',
        $noReservation: '.no-reservation',
      },

      onRender: function(){
        // Display reservations
        var reservationsCollection = this.model.get('reservations');
        var reservationsCollectionView = new ReservationsCollectionView(
            {collection:reservationsCollection}
        );
        //$('ul.reservations').html(reservationsCollectionView.render().el);
        this.ui.$reservationsList.html(reservationsCollectionView.render().el);

        if(reservationsCollection.length > 0)
        {
          this.ui.$noReservation.hide();
        }
        else
        {
          this.ui.$noReservation.show();
        }

        //$(this.ui.$reservationsList.el).html(reservationsCollectionView.render());
        //this.show(reservationsCollectionView);
      }
     //...
});

它工作得很好,但是它在 ALL 中呈现了应用程序的ul.reservations,而不仅仅是它的RoomView ......

这只是一个小问题还是一个更大的架构问题? (我从Marionette开始......)

感谢您的帮助

0 个答案:

没有答案