我正在尝试使用Ember.js构建一个应用程序,包括路由,角色,登录,注销等等。我现在的问题是我无法弄清楚如何处理动态路由。
我需要的是能够使用一条路线进行侧边栏导航。
当用户登录时,他/她将进入仪表板视图。假设他们单击左侧的“发布”菜单,然后他们将看到帖子视图。我想在同一条路线上处理这些问题,例如/: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
答案 0 :(得分: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 : '/'
})
}),
这是一个Gist解释Connect Outlets chack当前源代码的最新更新https://gist.github.com/3606155