我在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
。
如何设置/读取路径的路径参数?
答案 0 :(得分:0)
为了在查询字符串上传递这些参数,您必须定义路由,以便它将在查询字符串上接受它们。目前正在发生的事情是,您没有使用通过查询字符串接受参数的URL定义状态,因此它使用的是您在状态中指定的默认值(true
代表path
, null
代表logoValue
)。这是您应定义状态以接受查询字符串上的那些参数的方法:
.state("state123", {
url: "/sessiontimeline?path?logoValue",
templateUrl: /partials/session.html,
params : { 'path': true, 'logoValue': null }
}
通过上述配置,您可以直接通过$state.go
调用或通过查询字符串传递参数,并且$state.href('state123', paramValues)
应该输出/sessiontimeline?path=true&logoValue=123
。