我正在使用带有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
.
如何设置/读取路由中的路径参数?
为了在查询字符串上传递这些参数,您必须定义路由,以便它在查询字符串上接受它们。现在发生的事情是,您没有使用接受查询字符串上的参数的 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
。