当前位置 : 主页 > 网页制作 > HTTP/TCP >

如何使用ui.router模块通过url将数组传递给AngularJS应用程序

来源:互联网 收集:自由互联 发布时间:2021-06-16
我使用Angular 1.5和ui.router模块,并希望将int数组传递到app throw url. www.example.com/#/filter?[1,2,5]或www.example.com/#/filter/[1,2,5]或其他内容. .state('cats', { url: '/filter?catsIds', // or /filter/{catsIds} templat
我使用Angular 1.5和ui.router模块,并希望将int数组传递到app throw url. www.example.com/#/filter?[1,2,5]或www.example.com/#/filter/[1,2,5]或其他内容.

.state('cats', {
             url: '/filter?catsIds', // or /filter/{catsIds}
             templateUrl:'cats.html',
             controller: 'catsCtrl'
         })

目标:

app.controller('catsCtrl',function($stateParams){
    console.log(Array.isArray($stateParams.catsIds)) // goal true
    ...
你不能通过ui-router参数传递对象,我会说在传递值的同时使它成为分离的&然后通过它.

因此,在呼叫状态时,请执行以下操作

$state.go('cats', { catsIds: [1,2,5].join(',') })

将在URL下面形成

www.example.com/#/filter/1,2,5

从$stateParams中读取它时,将该字符串拆分为,

app.controller('catsCtrl',function($stateParams){
    console.log($stateParams.catsIds.split(','))
网友评论