我使用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¶m2=value2")
Run Code Online (Sandbox Code Playgroud) 我知道我可以将参数传递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方案?
我想知道是否在我的URL中使用矩阵或查询参数.我发现对该主题的旧讨论并不令人满意.
例子
乍一看,矩阵参数似乎只有优势:
paramA=val1,val2
但也有缺点:
由于服务的开发人员可以选择支持矩阵参数的框架,因此唯一的缺点是浏览器默认创建查询参数.
还有其他缺点吗?你会怎么做?
[routerLink]
和之间有什么区别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)
?
我一直在编写一个内部工具,供开发人员使用由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]"的情况,例如"*"(用于保存预先填充的正则表达式搜索字段的链接).
我可以想到几个修复,包括:
大多数简单的正则表达式在没有编码的查询字符串中完全有效,这意味着(4)和(5)都是有效的解决方案.
(5)是可能的,但我无法想象我是唯一遇到过这个问题的人.如果存在官方解决方案,我宁愿不创建自己的解决方法.
(4)是我的首选解决方案.我发现的许多较旧的示例都在查询字符串中显示了可选参数,因此我希望逻辑仍然存在,并且分号版本只是默认选项.
是否有可能告诉路由器使用查询字符串参数而不是现在使用的分号分隔的东西?
我搜索了angular.io和stackoverflow,找不到任何答案或任何人问这个问题.
谢谢.
你如何将一个参数放入routerlink.
我正在尝试做这样的事情:
<p *ngFor="let supplier of suppliers">
<a [routerLink]="['/supplier/{{supplier.businessId}}/products']">
View Products
</a>
</p>
Run Code Online (Sandbox Code Playgroud) angular ×6
typescript ×2
http ×1
jax-rs ×1
parameters ×1
rest ×1
routerlink ×1
routes ×1
url ×1