Ember.js路由

dag*_*da1 7 routing ember.js

我正在努力寻找任何好的Ember.js路由示例.

我应该使用这样的插件还是我个人很喜欢的样子这个

我看到有一个路由集合作为State对象的一部分,但我找不到任何如何使用它的例子.

pan*_*atz 21

最近在核心Ember.js中提供了路由,请参阅Tom Dale的博客文章.

核心开发人员Yehuda Katz写了一篇关于新路由功能使用的要点.这是一个很好的阅读,除了路由还说明它如何与控制器集成.

为了得到基本的想法,这里是一个从要点中获取的代码示例:

App.Router = Ember.Router.extend({
  root: Ember.State.extend({
    index: Ember.State.extend({
      route: '/',
      redirectsTo: 'calendar.index'
    }),

    calendar: Ember.State.extend({
      route: '/calendar',

      index: Ember.State.extend({
        route: '/'
      }),

      preferences: Ember.State.extend({
        route: '/preferences'
      })
    }),

    mail: Ember.State.extend({
      route: '/mail',

      index: Ember.State.extend({
        route: '/'
      }),

      preferences: Ember.State.extend({
        route: '/preferences'
      })
    })
  })
});

// If the user navigates to the page with the URL
// www.myapp.com/, you will start in the root.calendar.index state.
// The redirection to the calendar.index state will cause the URL
// to be updated to www.myapp.com/calendar

router.transitionTo('preferences');

// URL => www.myapp.com/calendar/preferences

router.transitionTo('mail.preferences');

// URL => www.myapp.com/mail/preferences

router.transitionTo('index');

// URL => www.myapp.com/mail
Run Code Online (Sandbox Code Playgroud)


小智 1

编辑:由于 Ember.js 路由器发生重大变化,这个答案自 1.0 PRE-RELEASE 左右以来就已过时。现代版本的 ember.js 应使用标准路由指南

我想这是(至少现在)非常个人化的。我喜欢 ghemton 的 ember-routemanager。如果您需要帮助,我可以帮助您。与他的 ember-layout 包一起,它们配合得很好。

http://codebrief.com/2012/02/anatomy-of-a-complex-ember-js-app-part-i-states-and-routes/

  • 据我所知,这项技术不再适用于包含本机路由的 ember.js 0.9.8.1,请参阅下面 pangrantz 的回答,了解 * * * 官方 * * * 解决方案;) (4认同)