2

Ember.js を使用して、ルーティング、ロール、ログイン、ログアウトなどのアプリケーションを構築しようとしています。現在の私の問題は、動的ルーティングを処理する方法がわからないことです。

私が必要としているのは、サイドバーのナビゲーションに 1 つのルートを使用できるようにすることです。

ユーザーがログインすると、ダッシュボード ビューが表示されます。左側の [投稿] メニューをクリックすると、投稿ビューが表示されるとします。のような同じルートでこれらを処理したい/:module/

module: Ember.Route.extend({
   route: '/admin/:module/',
   doLogout: Ember.Route.transitionTo('login'),
   connectOutlets: function (router) {
      "use strict";
      router.get('applicationController').connectOutlet('sidebar', 'sidebar');
      router.get('applicationController').connectOutlet('toolbar', 'toolbar');
   }
})

これは私が少し助けが必要なところです。動的ルーティングはどのように正確に機能しますか? おそらく、これまでに見つけたのは @wycats の ROuting に関する要点だけですが、そこからはわかりませんでした: https://gist.github.com/2728699

4

1 に答える 1

1

以下は、私が使用した動的ルーティングの簡略化された部分です。

myroute : Em.Route.extend({
    route : '/myroute/:tid', //tid is same as index of Object
    deserialize: function(router, params) {
        return App.router.getPath('myController.content').objectAt(parseInt(params.tid));
                    //you can use some other parameters than tid and find the coresponding element
        },
    serialize: function(router, context) {
        return {
        tid: App.router.getPath('myController.content').indexOf(context)
        }
        },
    connectOutlets: function(router, context) {
        var currentController = router.get('currentController');
        currentController.connectOutlet({
            name : 'controllername',
            outletName : 'outletname',
            context: context
            }); 
        },
    index: Em.Route.extend({
        route : '/'
        })
    }),

これは、Connect Outletsが最新の更新のために現在のソースコードをチェックすることを説明する要点ですhttps://gist.github.com/3606155

于 2012-09-03T01:51:27.387 に答える