6

我是 Ember-js 的新手,最近在浏览一些博客文章,还看到了 Tom dale 的 Ember-js 介绍视频。

总而言之,他们说 Router Api 是新引入的,它是 Ember-js 发生的最好的事情,Router Api 用于管理应用程序的状态,每个状态都用一个 URL 标识,现在用于单页应用程序我们只使用一个URL,路由器的作用是什么,会不会只有一个映射到'/'(索引)的路由条目?如果是,那么我们就失去了Router api提供的优势,对吧?

4

1 回答 1

4

现在对于我们只使用一个 URL 的单页应用程序,路由器的作用是什么,是否只有一个映射到“/”(索引)的路由条目?

通常,单页应用程序仍将使用该 url。例如,使用 gmail 时观看 url 更改。因此,在这种情况下,单页应用程序意味着浏览器不会在 url 更改时获取新页面。与 gmail 一样,典型的 ember 单页应用程序会在用户导航到应用程序的各个部分时更改 url。ember 路由器会自动处理这个问题。

如果是,那么我们就失去了Router api提供的优势,对吧?

如果您决定不使用 url,并且真的希望它一直保持“/”,您仍然可以使用路由器。只需将路由器的位置类型设置为“无”

请参阅http://emberjs.com/guides/routing/specifying-the-location-api/

我知道这里的路由意味着管理状态,但是在任何时候用户都可以处于一组状态,例如使用 gmail 用户将处于登录状态和撰写状态,如何管理同时存在的多个状态?

当然这是真的。ember 路由器基本上是一个状态图,其中路由(叶节点)嵌套在一些资源下。因此,以 gmail 为例,只有登录用户才能处于撰写状态。

邮箱地址:https://mail.google.com/mail/u/0/?shva=1#inbox

// Gmail Routes:
* /mail - the mail application
* /u/0 - connected account index 0 for the current user
* ?shva=1 - http://stackoverflow.com/questions/1692968/what-is-shva-in-gmails-url
* inbox - folder name

EmberMail 版本:https://mail.ember.com/mail/u/0/inbox

// EmberMail Routes
this.resource('mail', { path: '/mail' }, function() {
  this.resource('currentUser', { path: '/u' }, function() {
    this.resource('account', { path: '/:account_id' }, function() {
      this.route('folder', { path: '/:folder_id' });
    });
  });
});

你能指出一个广泛使用路由的示例应用程序吗?

我所知道的最好的例子是话语。查看以下示例,了解大型 ember 应用程序如何使用 ember 路由器:

于 2013-03-18T13:44:24.847 回答