相关疑难解决方法(0)

如何从Angular 2中的url获取查询参数?

我使用angular2.0.0-beta.7.将组件加载到/path?query=value1重定向到的路径上时/path.为什么要删除GET参数?如何保存参数?

我在路由器中有错误.如果我有像这样的主要路线

@RouteConfig([
  {
      path: '/todos/...',
      name: 'TodoMain',
      component: TodoMainComponent
  }
])
Run Code Online (Sandbox Code Playgroud)

和我的孩子一样的路线

@RouteConfig([
  { path: '/', component: TodoListComponent, name: 'TodoList', useAsDefault:true },
  { path: '/:id', component: TodoDetailComponent, name:'TodoDetail' }
])
Run Code Online (Sandbox Code Playgroud)

然后我无法在TodoListComponent中获取参数.我能得到

params("/my/path;param1=value1;param2=value2") 
Run Code Online (Sandbox Code Playgroud)

但我想要经典

query params("/my/path?param1=value1&param2=value2")
Run Code Online (Sandbox Code Playgroud)

typescript angular

213
推荐指数
9
解决办法
28万
查看次数

如何将参数传递给URL内某处的routerLink?

我知道我可以将参数传递routerLink给路由,例如

/user/:id
Run Code Online (Sandbox Code Playgroud)

通过写作

[routerLink]="['/user', user.id]"
Run Code Online (Sandbox Code Playgroud)

但是这个路线怎么样:

/user/:id/details
Run Code Online (Sandbox Code Playgroud)

有没有办法设置此参数或我应该考虑不同的URL方案?

angular2-routing angular2-router3 angular

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

URL矩阵参数与请求参数

我想知道是否在我的URL中使用矩阵或查询参数.我发现对该主题的旧讨论并不令人满意.

例子

乍一看,矩阵参数似乎只有优势:

  • 更具可读性
  • 不需要在XML文档中编码和解码"&"
  • 带"?"的网址 在很多情况下都没有缓存; 具有矩阵参数的URL被缓存
  • 矩阵参数可以出现在路径中的任何位置,并且不限于其末尾
  • 矩阵参数可以有多个值: paramA=val1,val2

但也有缺点:

  • 只有少数像JAX-RS这样的框架支持矩阵参数
  • 当浏览器通过GET提交表单时,params成为查询参数.因此它最终会出现两种相同任务的参数.为了不混淆REST服务的用户并限制服务开发人员的工作量,在这个领域中使用始终查询参数会更容易.

由于服务的开发人员可以选择支持矩阵参数的框架,因此唯一的缺点是浏览器默认创建查询参数.

还有其他缺点吗?你会怎么做?

parameters rest url http jax-rs

170
推荐指数
3
解决办法
6万
查看次数

[routerLink]和routerLink之间的区别

[routerLink]和之间有什么区别routerLink?你应该如何使用每一个?

routes routerlink angular angular-routerlink

79
推荐指数
3
解决办法
7万
查看次数

Angular2 Routerlink:添加查询参数

如何添加查询参数routerLink

@RouteConfig {
   {path: '/search',   name: 'Search', component: SearchCmp}
}  
Run Code Online (Sandbox Code Playgroud)

让我们说要前往/search?q=asdf,

<a [routerLink]= " [ '/Search' , {q= 'asdf'}] ">Link 1</a>
Run Code Online (Sandbox Code Playgroud)

这解决了/search.

有没有办法添加查询参数而不使用:

this.router.navigate( ['Search', { q: 'asdf'}]);
Run Code Online (Sandbox Code Playgroud)

要么

<a href="/search?a=asdf"> Link 2 </a>
Run Code Online (Sandbox Code Playgroud)

angular2-routing angular

51
推荐指数
2
解决办法
6万
查看次数

如何使用Querystring而不是';'

我一直在编写一个内部工具,供开发人员使用由C#WebApi支持的Angular2 beta 15.

随着新版本的发布,我升级了Angular2版本

我从第1天开始使用路由,但现在我需要添加可选参数.通常,这是通过查询字符串完成的.

但是,Angular2在查询字符串之前包含可选参数,如下所示:

http://www.example.com;a=b;c=4
Run Code Online (Sandbox Code Playgroud)

最初我觉得这很好,即使它不是我习惯的.但是,我现在遇到了需要"潜在危险的Request.Path值[s]"的情况,例如"*"(用于保存预先填充的正则表达式搜索字段的链接).

我可以想到几个修复,包括:

  1. 用*替换不同的符号表示开发人员必须知道特殊符号才能释放URL.
  2. Url对参数进行编码 - 意味着开发人员必须知道url编码的值以释放url.
  3. 当这些参数有特殊字符时排除这些参数 - 如果开发人员使用*免费提交网址,页面仍然会中断.
  4. 从pre-querystring参数切换到querystring参数.
  5. 手动控制查询字符串.

大多数简单的正则表达式在没有编码的查询字符串中完全有效,这意味着(4)和(5)都是有效的解决方案.

(5)是可能的,但我无法想象我是唯一遇到过这个问题的人.如果存在官方解决方案,我宁愿不创建自己的解决方法.

(4)是我的首选解决方案.我发现的许多较旧的示例都在查询字符串中显示了可选参数,因此我希望逻辑仍然存在,并且分号版本只是默认选项.

是否有可能告诉路由器使用查询字符串参数而不是现在使用的分号分隔的东西?

我搜索了angular.io和stackoverflow,找不到任何答案或任何人问这个问题.

谢谢.

angular2-routing angular

6
推荐指数
2
解决办法
6717
查看次数

在routerlink中间的Angular 6查询参数

你如何将一个参数放入routerlink.

我正在尝试做这样的事情:

<p *ngFor="let supplier of suppliers">
   <a [routerLink]="['/supplier/{{supplier.businessId}}/products']">
        View Products
   </a>
</p>
Run Code Online (Sandbox Code Playgroud)

typescript angular

4
推荐指数
2
解决办法
1034
查看次数