在书签或手动URL编辑上没有页面重新加载的路线

时间:2016-07-30 14:07:31

标签: ember.js

如果我在我的Ember应用程序的页面上,并手动编辑URL或使用标识同一应用程序中的另一个路径的书签,默认情况下页面会重新加载,丢失它所具有的任何瞬态,而不仅仅是如果我在应用程序中遵循Ember控制的链接,就会转换。是否有Ember的内置功能很好地集成到其路由功能中,这可以防止这种情况而只是转换?

详细说明:

使用Ember的默认路由,URL本身会更改而不仅仅是片段标识符(“hash”)。例如,在Quick Start示例中,如果您在http://server/scientists并且想要查看程序员列表,则转到http://server/programmers

如果你通过点击Ember处理的链接来做到这一点,那么在加载的页面中工作就好了(我假设Ember使用了封面下的History API来替换没有页面重新加载的状态)。不会导致页面重新加载。

但是如果你在http://server/scientists并点击书签将你带到http://server/programmers(或手动编辑URL),它会重新加载页面,丢失页面中包含的任何过渡状态。

相比之下,在使用片段标识符进行路由的应用程序(如Gmail)中,即使您手动编辑,也可以(例如)http://server/#scientistshttp://server/#programmers的等效更改不会导致页面重新加载地址栏或使用书签。 (当然;它只是片段标识符的更改,而不是实际的URL。)

Ember中是否有内置处理功能,可以很好地集成到其路由功能中,可以在不重新加载的情况下处理该用例?通过使用片段标识符而不是更改URL,还是使用某些History API功能? (虽然我不能想到可以做到的历史API功能。)

1 个答案:

答案 0 :(得分:1)

在config / environment.js文件中,默认情况下包含ENV.locationType= 'hash';,它将设置为auto。 有关详情,请访问http://emberjs.com/api/classes/Ember.Location.html