1

現在、データのリストの非同期ロードを行うコントローラーがあります。他のいくつかのコントローラーには、この読み込みがいつ終了したかを観察し、いくつかのモデルをリロードする関数があります。

私のプロジェクトの小さなセットアップ:

App.SyncController = Ember.ObjectController.extend({
  finished: false,

  init: function() {
    var self = this;
    $.get('/data', function(data) {
      // Process data
      self.set('finished', true);
    });
  }
});

App.OverviewController = Ember.ObjectController.extend({
  needs: ['sync'],

  finishedSyncingObserver: function() {
    // Reload or update some data in this controller
  }).observes('controllers.sync.finished')
});

App.DetailController = Ember.ObjectController.extend({
  needs: ['sync'],

  finishedSyncingObserver: function() {
    // Reload or update some data in this controller
  }).observes('controllers.sync.finished')
});

この例では、jQuery get が終了したときに両方のオブザーバーが呼び出されています。ただし、オブザーバーが 1 つだけ実行されるように、どのコントローラーがアクティブであるかを確認することは可能ですか?

ありがとう

4

1 に答える 1