3

鉴于此 Ember.js 应用程序的基本路由器定义直接取自此处的 Ember API 文档:http: //emberjs.com/api/classes/Ember.Router.html

App = Ember.Application.create({
  Router: Ember.Router.extend({
    root: Ember.Route.extend({
      index: Ember.Route.extend({
        route: '/'
      }),
      ... additional Ember.Routes ...
    })
  })
});

这将在 chrome 中生成以下 url:

本地主机/

但在 Firefox 和 IE 中会产生:

本地主机/#

它不仅在末尾添加了 hash bang,而且后退按钮在 Firefox 和 IE 中都有历史记录:

本地主机/

然而,这个“状态”不能被刷新。刷新将再次带您到:

本地主机/#

这似乎路由器以某种方式推动了 2 个状态,但其中一个并不是真正有效的。有人可以解释一下我在这里缺少什么吗?

4

1 回答 1

2

默认情况下,Ember 应用程序在路由中有 #。我不确定您为什么会出现不一致,但是为了告诉路由器不要在 url 中使用 # 您可以设置“位置”选项:

App.Router = Ember.Router.extend({
  location: 'history'
});

这是文档中引用 location 属性的地方: http: //emberjs.com/api/classes/Ember.Router.html#property_location

于 2012-11-13T18:00:36.133 回答