0

Ember JS (RC1) の最新リリースを使用していますが、アーキテクチャ上の問題があります。

ユーザーのリストとユーザーを追加するフォームという非常に単純なユースケースがあります。私のルーター:

App.Router.map(function () {   
   this.resource('users', function () {
      this.route('new');
   });
});

私のルート:

App.UsersRoute = Em.Route.extend({
    model:function () {
        return App.User.findAll();
    }
});

私のコントローラー:

App.UsersNewController = Em.ObjectController.extend({
    saveUser:function () {
        //'content' contains the user
        App.User.save(this.content);    

        // here i want to reload the list of users, but it doesn't work
        // The application goes correctly to the url /users
        // But doesn't call the 'model' function
        this.transitionToRoute('users');
    }
});

上記のコメントで述べたように、新しいユーザーを作成するときに、ユーザーのリストにリダイレクトし (その部分は機能します)、ルートの「モデル」メソッドを呼び出してユーザー リストをリロードします (その部分は機能しません)。 't)。

リストをリロードするメソッドを UsersController に記述できますが、そうすると、UsersRoute と UsersController の間で重複が発生します。

誰かがこの問題について私を助けることができますか?

ありがとう

PS:ここでフィドルhttp://jsfiddle.net/vsxXj/

4

1 に答える 1

0

モデル フックに関する Ember ドキュメント:

「URL をこのルートのモデルに変換するために実装できるフック。」

したがって、このフックがこのケースに適しているとは思いません。この場合、 setupController フックを使用する必要があると思います。これを試して:

App.UsersRoute = Em.Route.extend({
    setupController(controller){
        controller.set("content", App.User.findAll());
    }
});
于 2013-02-20T13:14:47.017 に答える