1

在我的 Ember 应用程序中,我需要根据用户所在的应用程序部分显示几个不同的菜单或菜单。推荐的执行方式是什么?我试图做的是在我的模板中查看:

{{view App.NavbarView controllerBinding="App.CurrentNavbarController.nav"}}

在我看来,我正在检查路径:

App.NavbarView = Ember.View.extend({ 
    templateName: function() {
        path = App.getPath('router.currentState.path');
        //change navbar
    }
});

这就是我卡住的地方。如何动态切换视图?

4

2 回答 2

0

一种方法是使用路由器进行设置。

someRoute:
  connectOutlets: (router, model)->
     # ... normal stuff here
     App.set 'section', 'theNameOfThisSection'
  exit: (router)->
     App.set 'section', ''

  subRoute:
    # ... in the sub route, App.section will still be set
于 2012-12-15T14:21:46.670 回答
0

另一种方法是使用路由器将一些插座连接到导航视图。

在你application.handlebars放一个命名的插座:

{{outlet nav}}

在您的路由器中,输入路由时连接插座:

userRoute: 
  connectOutlets: (router, model)->
    # normal stuff here
    router.get('applicationController').connectOutlet('navbar', 'userNav', model)
  exit: (router)->
    router.get('applicationController').disconnectOutlet 'navbar'

  subRoute:
    # still has the navbar outlet connected in a subroute
于 2012-12-15T14:26:55.307 回答