使用 URL 路由将状态参数传递到 AngularJS 中的新选项卡,而不会显示在 URL 中



我正在使用带有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用于pathnull用于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

相关内容

  • 没有找到相关文章

最新更新