相关疑难解决方法(0)

angular 2禁用url编码

我想禁用网址编码.

当我在下面使用这个.

this.router.navigate(['/profile', { tags: 'one,two' }]);
Run Code Online (Sandbox Code Playgroud)

网址是这样的

http://localhost:4200/profile;tags=one%2Ctwo
Run Code Online (Sandbox Code Playgroud)

我希望它非常像下面

http://localhost:4200/profile;tags=one,two
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用网址编码?

javascript http angular2-routing angular

15
推荐指数
1
解决办法
1万
查看次数

使用Angular 2路由器的网址自定义编码(使用+符号代替空格)

我正在使用Angular 2路由器更新搜索应用程序的URL中的查询参数.我试图用+符号替换查询中的空格.但是,+符号正在编码.例如:

this.router.navigatebyUrl('?q=one+two');
Run Code Online (Sandbox Code Playgroud)

使用"?q = 1%2Btwo"填充URL.

在查看Angular 2的源代码时,看起来路由器将URL转换为UrlTree ,它使用encodeURIComponent()对url进行编码.因此,不可能阻止默认编码.

我目前的过程是通过如上所示执行navigateByUrl来更改路径,然后通过以下方式侦听更改:

this.routeSubscription = this.route.queryParams.subscribe((params: any) => {
  this.term = (params.q ? params.q : '');
});
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法来处理查询参数,这些参数允许我使用自己的策略进行网址编码?

angular2-routing angular

10
推荐指数
2
解决办法
1万
查看次数

Angular 5:如何仅使用1条路径将出口的所有路径路由到同一个组件?

我目前的配置:

const routes: Routes = [
  { path: '', component: NavComponent, outlet: 'nav' },  // (1)
  { path: '**', component: NavComponent, outlet: 'nav' } // (2)
];
Run Code Online (Sandbox Code Playgroud)

有用.NavComponent总是呈现出口nav.特别是,它适用于以下所有类型的URL:

http://example.com/foo(nav:bar)     // (a) non-empty path in nav   -->  (2)
http://example.com/foo(nav:)        // (b) empty path in nav       -->  (2)
http://example.com/foo              // (c) no nav at all           -->  (1)
Run Code Online (Sandbox Code Playgroud)

请注意,路由器匹配到这些URL的不同路由:

  • (1) 是用来 (c)
  • (2)用于(a)(b)

这就是为什么NavComponent实例被破坏并重新创建每个位置的变化,从说时间(c)(a).这是我需要防止的事情.我需要保留我的实例,因为它的状态,动画等等.据我所知,只有在所有URL使用相同的路由时才有可能,但是我找不到这样做的方法.如果我删除(1),喜欢的URL (c)停止显示NavComponent …

angular angular-router angular-auxiliary-routes

8
推荐指数
1
解决办法
604
查看次数