プロジェクトで Mithril JS を使用していますが、Ajax ライフサイクルに接続する方法を正確に理解するのに苦労しています。たとえば、Ajax リクエストに時間がかかる場合は、スピナーを表示したいと思います。かなり基本的ですが、それがどのように起こるのか理解できないようです。
Ajax リクエストが探しているコンテンツと同じコンテナーをスピナーに使用したいと考えています。
これが私のセットアップです:
var Thing = function (data) {
var p = m.prop;
this.title = p(data.title);
this.timestamp = p(moment.unix(data.timestamp));
}
Thing.list = function(options) {
m.request({method: "GET", url: "/things.json", type: Thing, background: true});
};
MyApp.components.thingsList = {
controller: function ThingListController() {
this.things = m.prop([]);
Thing.list().then(this.things).then(m.redraw);
},
view: function thingListView(ctrl) {
return m('div#thing-tab', [
m('ul#things', [
ctrl.things().map(thingView)
])
]);
}
};
function thingView(thing) {
...some view stuff...
}
思い通りに動作していますが、ajax ライフサイクルに接続する方法がわかりません。繰り返しますが、リクエストの開始時にスピナーを表示し、それを ajax リクエストの結果に置き換えたいだけです。
どんな助けでも大歓迎です!
ありがとう、