因此,我通过电子邮件发送到我的网站的链接,其中包含代码作为参数,例如:

本地主机: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时在控制台中获得的内容的捕获:

javascript - Angular UI Router-$ stateParams具有属性,但无法访问它们-LMLPHP

我也尝试像$ stateParams [“ code”]一样访问它,但是仍然无法定义。

我在这里错过明显的东西吗?谢谢!

最佳答案

好吧,看来我必须使用$ stateChangeStart函数中的toParams而不是$ stateParams。

它正在与之合作。

09-25 23:42