1

emberjs-rc.2 にアップデートしたら自己解決しました。答えを参照してください。

私のアプリケーションには、ウィザードのような機能を備えた 2 つのページがあります。最初のページで、ユーザーはいくつかのデータを提供し、次のページで、ユーザーは最初のページのデータに基づいて作成されたリスト内の項目を選択します。私がやろうとしているのは、ユーザーがまだ最初のページにいる場合でも、最初のページで必要なデータが有効になるとすぐに、2 番目のページのデータの読み込みを開始することです。リストサーバーの構築に時間がかかるため、次のページに遷移する際にデータを用意したい。

2 つのページ / ルートは、同じリソースの下にネストされています。

私のルート:

App.YayRoute = Ember.Route.extend({

  events: {
    dataValid: function() {
      this.controllerFor('yaySecond').send('loadStuff');
    }
  }
});

App.YaySecondRoute = Ember.Route.extend({
  events: {
    loadStuff: function() {
      this.controller.set('stuff', App.Stuff.find());
    }
  }
});

YayFirstController では、関連するデータを監視し、該当する場合は this.send('dataValid') を実行しています。一番上のルート YayRoute はこれを拾い上げ、2 番目のルートで loadStuff をトリガーします。App.Stuff.find() は次のようになります

find: function() {
    var result = Ember.A([]);
    $.getJSON(url, function(data) {
        // populate result
    });
    return result;
}

意図したとおりにすべてが実行されていますが、私の問題は、loadStuff から呼び出されたときに YaySecondController の内容が読み込まれないことです。YaySecondRoute の setupController にloadStuff の controller.set('stuff', App.Stuff.find())の内容を追加すると、データは正常に読み込まれます。しかし、すぐにデータが読み込まれることにクールさを失います。何か案は?

4

1 に答える 1

0

So, this resolved itself when updating to emberjs-rc.2 today. I'm still new to ember, so I have no idea what was going on. Anyway, is this the correct way to do this? It seems slighty cumbersome.

于 2013-04-02T11:13:08.693 に答える