2016-03-29 2 views
1

Я пытаюсь построить поставщика состояния, который улавливает несколько параметров, но проблема в том, что я не знаю, сколько параметров можно ли их поймать как объект или массив? или единственное решение - поймать его как строку и отделить их?angularsjs поставщик состояния multi params

, например, это мой провайдер

.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' - это params obj, которые имеют все параметры в вашем контроллере, которые необходимо передать другому контроллеру. –