2016-03-29 28 views
1

我想建立状态提供程序,捕获多个参数,但问题是,我不知道有多少个参数 是否有可能将它们捕获为对象或数组? 或唯一的解决办法是把它作为字符串并将它们分开?angularsjs状态提供程序多参数

例如,这是我的供应商

.state('app.confirmPayment', { 
     url: '/comfirmPayment/:params', 
     templateUrl: '/Views/ConfirmPayment.html' 
    }) 

和控制器

app.controller('ConfirmController', ['$scope', '$state', 
    function ($scope, $state) { 
     var self = this; 

     console.log('$state confirm payment'); 
     console.log($state); 
     console.log('$state confirm payment'); 

    } 
]); 

,并想抓住一切PARAMS分离

/comfirmPayment/:age=15&name=erez..... // can be more that i dont know 

,并可以更PARAMS,我不知道他们可以做什么

感谢 希望其明确

回答

0

除非你绑定到查询参数(见documentation),你不直接访问它们通过$state$stateParams

假设URL

cities?cityId=3&param1=value1 

,你可以在你的路由器配置$stateProvider你定义状态

.state('cities', { 
      url: "/cities?cityId&param1", 
      templateUrl: "cities.html", 
      controller: "citiesController" 
     }) 
// will match to url of "/cities?cityId=[any id]&param1=[any value]" 

处理这个最后你可以在citiesController.js即这些参数

console.log($stateParams); 
//Object {cityId: "3", param1: "value1"} 

希望它有帮助。

+0

那么我不知道他们误解了这个问题的那些参数怎么样 – Erez

+0

@Erez我已经编辑了我的答案,请看看并询问任何关于它的问题。 –

+0

'objNeedsToBePassed'是参数obj,它具有需要传递给另一个控制器的控制器中的所有参数。 –