Juh*_*emi 2 javascript angularjs angular-ui-router
我想通过params将两个值传递给新的ui-view:
但是,我希望新视图只显示浏览器URL中的id,而不是字符串化的对象数组:
http://www.myapp.com/#/my-view/4
INSTEAD OF
http://www.myapp.com/#/my-view/4?flskdjalfjaewoijoijasdlfkjösldakjföliwejöorijo
Run Code Online (Sandbox Code Playgroud)
是否可以a)将隐藏的对象数组传递给ui-view或b)传递两者但是将另一个隐藏在浏览器URL中?
我发现了一些关于squash参数的东西,但是无法让它做我正在尝试的事情.
这是我的观点:
$stateProvider
.state('show', {
url: "/show/{itemId}?{itemList}",
views: {
'mainView': {
templateUrl: 'views/itemView.html',
controller: 'showController',
params: {
itemList: {
value: null,
squash: true
},
itemId: -1
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不隐藏ID的情况下隐藏URL中的对象列表?
小智 7
你是在正确的道路上.要隐藏params,你必须params像你一样定义它们,而不是squash.
您的示例应如下所示:
$stateProvider
.state('show', {
url: "/show?itemId",
views: {
'mainView': {
templateUrl: 'views/itemView.html',
controller: 'showController'
// params do not work here! They need to be attached below ...
// $stateProvider.state('show', {url:'/show/:url_param',views:{}, params: {}})
}
},
resolve: {},
params: {
itemList: {
value: null
}
}
})
Run Code Online (Sandbox Code Playgroud)
请参阅示例:http://plnkr.co/edit/wEjwCVWMKTyuSdyLr0og?p = preview