2016-07-30 108 views
1

如果我在我的Ember应用程序中的页面上,手动编辑URL或使用标识同一应用程序内的其他路线的书签,默认情况下会重新加载页面,失去了它所具有的任何瞬态状态,而不是像在应用中遵循Ember控制的链接那样进行转换。是否有Ember的内置功能可以很好地集成到路由功能中,从而防止这种情况发生,并且只是转换?没有页面重新加载书签或手动URL编辑

详情:

与Ember的默认路由,网址本身的变化,而不只是片段标识符(“哈希”)。例如,在Quick Start例如,如果你在http://server/scientists,并想在程序员的名单看,而不是,你去http://server/programmers

如果你通过点击由灰烬处理的链接时,加载的页面就好内的工作(我假设灰烬底层使用历史API,而不重新加载页面替换状态)。不会导致页面重新加载。

但是,如果您使用的是http://server/scientists并点击书签可带您到http://server/programmers(或手动编辑网址),它会重新加载页面,从而丢失页面包含的任何瞬态状态。

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

Ember中是否有内置处理功能,可以很好地集成到其路由功能中,使其无需重新加载即可处理该用例?通过使用片段标识符而不是更改URL或使用某些History API功能? (虽然我想不出可以做到这一点的History API功能)。

回答