Url 保持Angular2路由器';将手从浏览器上移开';s地址栏
我正在构建一个单页Angular 2.2.0应用程序,它将成为嵌入式网站的一部分。该网站将有六个页面,其中角SPA位于Url 保持Angular2路由器';将手从浏览器上移开';s地址栏,url,angular,browser,angular-ui-router,single-page-application,Url,Angular,Browser,Angular Ui Router,Single Page Application,我正在构建一个单页Angular 2.2.0应用程序,它将成为嵌入式网站的一部分。该网站将有六个页面,其中角SPA位于/application.html。应用程序将在不同的时间显示/隐藏各种组件,我正在使用路由器驱动这些组件 我希望维护/application.htmlURL,因为我不需要用户能够为SPA内的位置添加书签,web服务器无法配置为将“未找到”URL映射到其他地方,这将使SPA更好地与网站的其余部分共存。不幸的是,Angular router不是这样设计的:它真的想玩浏览器的地址栏
/application.html
。应用程序将在不同的时间显示/隐藏各种组件,我正在使用路由器驱动这些组件
我希望维护/application.html
URL,因为我不需要用户能够为SPA内的位置添加书签,web服务器无法配置为将“未找到”URL映射到其他地方,这将使SPA更好地与网站的其余部分共存。不幸的是,Angular router不是这样设计的:它真的想玩浏览器的地址栏
我已经解决了这两个后果;具体来说,当我的代码跳转到新位置时,我使用的是
skipLocationChange
属性,而不是通过URL使用来自状态管理的路由好处。因为您不需要状态管理,所以我根本不使用路由。通过具有的组件加载“页面/视图”
<page-one *ngIf="showPageOne"></page-one>, etc....
等。。。。
您仍然可以获得不加载未使用的组件的好处。否则,我将使用哈希策略。在创建路由器模式时,将useHash extra选项设置为true:@JBNizet Thank;这确实让事情变得更清楚了,但地址栏中仍然有schmutz。路由器的全部功能是将URL映射到组件,并在URL中导航。因此,我需要列出父组件模板中显示的每个可能组件,它们的可见性由某个值控制,对吗?(但是,我目前必须在路由器配置上做同样的事情)是的,差不多。无论哪种方式,你都会在应用程序的某个地方列出所有可能的组件。无论您是否使用路由。对建议的功能有何评论?只是看看而已。我觉得它没什么用,但考虑到你的情况,它可以让事情变得更“干净”