因此,我通过电子邮件发送到我的网站的链接,其中包含代码作为参数,例如:
本地主机:8080 / app / recover_password / 12345678
在我的路线配置中,我有:
app.config(function($stateProvider, $urlRouterProvider, VIEWS_PREFIX) {
$urlRouterProvider.otherwise("/login");
$stateProvider.state("recover_password", {
url : "/recover_password/:code",
templateUrl : VIEWS_PREFIX + "recover_password_form_view.html",
controller : "login_controller"
});
});
app.run(function($rootScope, $stateParams, login_services) {
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams) {
console.log($stateParams.code);
}
});
});
如果我尝试读取这样的参数,我将得到一个未定义的参数,但是如果我读取它们,则为:
console.log($stateParams);
我实际上得到了一个带有代码的对象。
这是我仅登录$ stateParams时在控制台中获得的内容的捕获:
我也尝试像$ stateParams [“ code”]一样访问它,但是仍然无法定义。
我在这里错过明显的东西吗?谢谢!
最佳答案
好吧,看来我必须使用$ stateChangeStart函数中的toParams
而不是$ stateParams。
它正在与之合作。