使用 URL 路由到 AngularJS 中的新选项卡传递状态参数而不显示在 url 中
Pass State params using URL Routing to a new tab in AngularJS without showing up in the url
我正在使用 AngularJS 和 ui-路由器。我正在尝试将参数传递给新选项卡。所以我将参数从状态传递到控制器而不显示在 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
。
我如何set/read 路由中的路径参数?
为了在查询字符串上传递这些参数,您必须定义您的路由,以便它在查询字符串上接受它们。现在正在发生的事情是,您没有使用接受查询字符串参数的 URL 定义的状态,因此它使用您在状态中指定的默认值(true
for 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
.
我正在使用 AngularJS 和 ui-路由器。我正在尝试将参数传递给新选项卡。所以我将参数从状态传递到控制器而不显示在 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
。
我如何set/read 路由中的路径参数?
为了在查询字符串上传递这些参数,您必须定义您的路由,以便它在查询字符串上接受它们。现在正在发生的事情是,您没有使用接受查询字符串参数的 URL 定义的状态,因此它使用您在状态中指定的默认值(true
for 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
.