1

今、私は次のアプリを持っています - http://jsbin.com/okoxim/7/edit

これにより、ユーザーは名前またはクラス別に閲覧できます。ユーザーごとにブラウジングし、新しいユーザーをクリックすると、デフォルト値のない新しいフォームが表示され、保存するとそのユーザーの詳細に移動します。

クラスごとにブラウジングするときに、新しいユーザーを追加するオプションを提供したいのですが、新しいフォームは、新しいユーザーオプションが選択されたときにオンになっていた現在のクラスにデフォルト設定され、保存時に、保存されたクラスに戻る必要があります。

このシナリオを容易にするためにルートをセットアップする正しい方法は何ですか?また、このために既存の新しいコントローラーをどのように再利用すればよいですか?

4

1 に答える 1

0

カスタムを使用しeventて、ルート内からこれを管理できます。ビュー/コントローラーからイベントをルートにバブルアップします。これにより、データが与えられた生徒が追加されます。

App.ApplicationRoute = Em.Route.extend({
  events: {
    createStudent: function(student, gradeId) {
      var grade = App.Grade.find(gradeId);
      var newStudent = App.Student.create({
        name: student.name,
        address: student.address,
        grade: grade
      }); 

      newStudent.save();
      // other application related stuff
    }
  }
});

そして、sendこのデータを含むイベントをルートにディスパッチするために使用するコントローラーから。

save: function() {
  var gradeId = this.get('newGrade');
  var student = {
    name: this.get('newName'),
    address: this.get('newAddress')
  };
  this.send('createStudent', student, gradeId);
  // other view related stuff
}

イベントは、createStudentさまざまなコントローラー/ビューから再利用できます。

于 2013-07-22T03:39:10.310 に答える