2015-10-22 2 views
0

Я пытаюсь реализовать поток забытых паролей в своем приложении, которое собирает некоторую информацию от пользователя и передает его через состояния.ui-router игнорирование параметров состояния

После того, как пользователь отправляет их идентификатор сотрудника и где они хотят код сброса отправляется (по электронной почте или по телефону), Я посылаю оба тех лексем состояния:

$state.go("^.token", { employeeId: forgot.employeeid, resetType: forgot.resetType }); 

Мой маршрутизатор довольно проста:

$stateProvider.state("authentication.forgot", { 
    url: "/login/forgot", 
    templateUrl: "partials/authentication/forgot.html", 
    controller: "ForgotController as forgot", 
    onEnter: function() { $(document).foundation(); } 
}); 

$stateProvider.state("authentication.token", { 
    url: "/login/token", 
    templateUrl: "partials/authentication/token.html", 
    controller: "TokenController as token", 
    onEnter: function() { $(document).foundation(); } 
}); 

А вот мой маркер контроллер:

app.controller("TokenController", function ($state, $stateParams, $timeout, Authentication) { 
    console.log($stateParams); 
}); 

В моей лексем продолжение ролик, $ stateParams становится пустым объектом.

ответ

0

Вы не указываете какой-либо параметр в определении $ stateProvider, поместите параметр url или определите параметр params в определении $ stateProvider.

url: "/login/token", 
params: { object: {} }, 
templateUrl: "partials/authentication/token.html", 

Примечание, чем {} Значение по умолчанию для объекта, в случае, если нет Титулы не указаны в переходном состоянии, и вы будете иметь возможность получить доступ к этому через $sateParams.object

0

Вы должны объявить Params которые вы пытаетесь получить в декларации состояния.

$stateProvider.state("authentication.token", { 
    url: "/login/token?employeeId:[a-zA-Z0-9]*&resetType:[A-Z]", 
    templateUrl: "partials/authentication/token.html", 
    controller: "TokenController as token", 
    onEnter: function() { $(document).foundation(); } 
}); 

Тогда вы сможете получить доступ к ним в своем контроллере через $ stateParams.

Смежные вопросы