を未定義私はチャンクに多くの大きなファイルをアップロードするためのサービスエンバーは、サービスへのコールバックを渡す - この
export default Ember.Service.extend({
run(files, callbacks) {
// ugly async FileReader and ajax
// calling callbacks during the process
}
})
を持って、私は進行状況を表示するためのコールバックの束を必要とするが、問題は、これらのコールバック内の未定義のものthis
です
export default Ember.Component.extend({
upload: Ember.inject.service(),
didInsertElement() {
// bind fileinput change event to set up pending files
},
ondonesingle(self, file, uuid) {
// this is undefined
// self is real this
},
actions: {
submit() {
let callbacks = {
ondoneall: this.ondoneall,
ondonesingle: this.ondonesingle,
onprogressall: this.onprogressall,
onprogresssingle: this.onprogresssingle,
onerror: this.onerror,
object: this // will be passed as first argument to each callback
};
this.get('upload').run(this.get('pending_files'), callbacks);
},
}
})
これを回避するには、これをすべての場所で行う必要があります。
これは機能しますが、それはひどく間違っています。 Emberでこれを行うベストプラクティスは何ですか?観測可能なプロパティも間違っていると感じます。2000ファイルの進行状況をどのように確認できますか?すべてのものを1つの大きなオブジェクトに入れ、アプリ全体で共有しますか?