gpt4 book ai didi

javascript - Backbone Marionette : using emptyView for loading

转载 作者:搜寻专家 更新时间:2023-11-01 04:09:34 25 4
gpt4 key购买 nike

我正在使用 Backbone Marionettes CollectionView。我试图表明集合正在加载,所以我使用 emptyView 来显示加载器。

然而,这是一个糟糕的逻辑,因为有时集合是空的,因此它变成了一个损坏的加载器。

我试过使用这个脚本,但没有成功:https://github.com/surevine/marionette-loadingview-plugin

有没有人有更好的解决方案?这是我当前的代码:

//loadingview
define(["marionette", "text!app/templates/loading.html"], function(Marionette, Template) {
"use strict";
return Backbone.Marionette.ItemView.extend({
template: Template
});
})

//collection
define(["marionette", "text!app/templates/events/collection.html", "app/collections/events", "app/views/events/item", 'app/views/loading'], function (Marionette, Template, Collection, Row, LoadingView) {
"use strict"
return Backbone.Marionette.CompositeView.extend({
template: Template,
itemView: Row,
itemViewContainer: "ul",
emptyView: LoadingView,
initialize: function () {
this.collection = new Collection()
return this.collection.fetch()
}
})
})

//item
define(["marionette", "text!app/templates/events/item.html"], function(Marionette, Template) {
"use strict";
return Backbone.Marionette.ItemView.extend({
template: Template,
tagName: "li"
})
})

最佳答案

我通常做的是监听集合/模型的“请求”和“同步”事件。像这样:

var View = Backbone.Marionette.CompositeView.extend({
template: Template,
itemView: Row,
itemViewContainer: "ul",

collectionEvents: {
'request': 'showLoading',
'sync': 'hideLoading'
},

initialize: function () {
this.collection = new Collection();
return this.collection.fetch();
}

showLoading: function() {
this.$el.addClass('loading');
},

hideLoading: function() {
this.$el.removeClass('loading');
}
});

关于javascript - Backbone Marionette : using emptyView for loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19053708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com