【发布时间】:2019-03-11 20:32:34
【问题描述】:
我正在使用带有 ui-router 的 AngularJS。我正在尝试将参数传递给新选项卡。所以我将参数从状态传递到控制器而不显示在 URL 中。我正在使用$state.href 的参数,如下所示:
在js文件中,
var paramValues = { 'path': true, 'logoValue': 123};
var achiveRoute = $state.href('state123', paramValues);
$window.open(achiveRoute, '_blank');
在状态文件中,
.state("state123", {
url: "/sessiontimeline",
templateUrl: /partials/session.html,
params : { 'path': true, 'logoValue': null }
}
我正在尝试使用StateParams 访问控制器中的这些参数。
var logoValue = $stateParams.logoValue;
但是logoValue 显示的是undefined。
如何设置/读取路由中的路径参数?
【问题讨论】:
-
你能告诉控制器你在哪里使用
var logoValue = $StateParams.logoValue;吗?具体来说,让我们看看你在那个控制器中注入了什么。 -
这里是控制器。 module.controller('sessionCtrl', ['$scope', '$state', '$stateParams', function ($scope, $state, $stateParams) {
-
您正在注入
$stateParams,但随后您尝试使用大写“S”($StateParams.logoValue) 访问它。这可能会导致您的undefined问题。 -
对不起,我编辑了我的帖子。我正在使用小“S”。那是一个错字。对不起。 var logoValue = $stateParams.logoValue;
-
如果您在
$window.open()调用之前console.log(achiveRoute),值是多少?
标签: javascript angularjs angular-ui-router routeparams