Ember文档states可以将其设置为使用History API进行路由而不是使用基于散列的片段:
App.Router.reopen({
location: 'history'
});
但我没有提到如果浏览器不支持History API会发生什么。是否会回归使用像History.js这样的哈希?
如果没有,我是否应检查History API支持并将历史记录实现切换为哈希(如果不支持)?
答案 0 :(得分:17)
在ember源中似乎没有任何History API支持检测。
因此,如果您将location
设置为history
,并且没有支持,那么您的路由可能会失败。
如果您打算支持旧浏览器,最安全的赌注就像您说的那样:
if (window.history && window.history.pushState) {
App.Router.reopen({
location: 'history'
});
}
如果您在金丝雀中启用location:'auto'
功能,现在可以使用ember-routing-auto-location
。