我已经使用 Marionette 一个星期了,它真的让我的生活更轻松了!
现在我需要能够在获取集合或模型时通知用户,因为某些视图需要大量时间来呈现/获取。举个例子,我做了一个小模型:
当用户单击一个类别时,需要加载该类别中所有项目的集合。在获取集合之前,我想显示一个加载视图,如图所示(视图 1)。什么是实现这一点的优雅解决方案。我发现以下帖子中用户启用了获取触发器:http ://tbranyen.com/post/how-to-indicate-backbone-fetch-progress 。这似乎有效,但并不像我想要的那样。这是我想出的:
var ItemThumbCollectionView = Backbone.Marionette.CollectionView.extend({
collection: new ItemsCollection(userId),
itemView: ItemThumbView,
initialize: function(){
this.collection.on("fetch", function() {
//show loading view
}, this);
this.collection.on("reset", function() {
//show final view
}, this);
this.collection.fetch();
Backbone.history.navigate('user/'+identifier);
this.bindTo(this.collection, "reset", this.render, this)
}
});
如果我可以有一个名为“LoadItemView”的可选属性,那就太好了。这将在获取期间覆盖 itemView。在您看来,这会是一个好的做法吗?