从Marionette的emptyView添加到收藏夹

时间:2013-10-05 15:33:42

标签: javascript backbone.js marionette

我可以以某种方式让我的空视图知道我的收藏,以便我可以从空视图中添加到我的收藏中吗?

如果我做的事情不是最佳做法:

EmailsView = Backbone.Marionette.CollectionView.extend({
        emptyView: EmptyMealView,
        itemView : EmailView,
        itemViewOptions : function(){
            return {collection : this.collection}
        },
});

所以我可以在空视图中做这样的事情:

EmptyMealView = Backbone.Marionette.ItemView.extend({
        events:{
          'click .sendEmail' : 'sendEmail',
        },
        sendFakeEmail: function(e){

          var myEmail = new Email({
              Date : new Date(),
              Type : 3
          });
          var that = this;
          myEmail.save(null,{
              success:function(model){
                  that.collection.add(model);
              }
          });
      }
});

2 个答案:

答案 0 :(得分:1)

你拥有的一切都很好。创建ItemViewOptions,以便您可以将数据从父视图传递到其子视图。

答案 1 :(得分:1)

emptyView实际上是collectionView的完全限定子级。

在骨干网中,一个空集合实际上有一个奇怪的空白模型,你的空视图实际上得到了这个空模型。此外,空视图将获得itemviewOptions方法传入的选项。您可能需要在空视图中实现serializeData,以便检索作为不属于模型的选项传入的数据。