Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url 保持Angular2路由器';将手从浏览器上移开';s地址栏_Url_Angular_Browser_Angular Ui Router_Single Page Application - Fatal编程技术网

Url 保持Angular2路由器';将手从浏览器上移开';s地址栏

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不是这样设计的:它真的想玩浏览器的地址栏

我正在构建一个单页Angular 2.2.0应用程序,它将成为嵌入式网站的一部分。该网站将有六个页面,其中角SPA位于
/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中导航。因此,我需要列出父组件模板中显示的每个可能组件,它们的可见性由某个值控制,对吗?(但是,我目前必须在路由器配置上做同样的事情)是的,差不多。无论哪种方式,你都会在应用程序的某个地方列出所有可能的组件。无论您是否使用路由。对建议的功能有何评论?只是看看而已。我觉得它没什么用,但考虑到你的情况,它可以让事情变得更“干净”