gpt4 book ai didi

javascript - 隐藏 URL ui-sref (ui.router) 中的参数

转载 作者:行者123 更新时间:2023-12-01 04:03:16 27 4
gpt4 key购买 nike

我的 HTML 如下:

<a ui-sref="videoParent.Display.video({videoName:'[[sVid.slug]]', videoId:'[[sVid.videoID]]'})"><p>[[sVid.name]]</p></a>

然后,我在 js 文件中检索参数 videoName 和 videoId,如下所示

.state("videoParent.Display.video", { 
url: "/video/:videoName/:videoId",
views: {
'video_info@videoParent': {
templateUrl: "/partials/starred_video.html",
controller: "starredVideoController",
controllerAs: "starredVidsCtrl",
resolve: {
retrivedVideo: ['videosService', '$stateParams', function(videosService, $stateParams) {
if ($stateParams.videoId) {
var video = videosService.getVideoById($stateParams.videoId);
return video;
}
}]
}
},

在我的网址中,我得到如下结果:

../video/data-statistician/5

但是,我不想显示 videoId (5),而是希望输出为:

../video/data-statistician

我可以通过将状态的 url 部分写为以下方式来实现所需的结果:

url: "/video/:videoName

但问题是,如果我按照上面的方式编写代码,videoId 将不会包含在 $stateparams 对象中。

如何将视频 ID 传递给州而不显示在 URL 中?

最佳答案

如果您不想在 URL 中显示 ID,但需要使用 stateparams 传递 ID,请尝试此操作

.state("videoParent.Display.video", { 
url: "/video/:videoName",
params:{videoId:null},
views: {
'video_info@videoParent': {
templateUrl: "/partials/starred_video.html",
controller: "starredVideoController",
controllerAs: "starredVidsCtrl",
resolve: {
retrivedVideo: ['videosService', '$stateParams', function(videosService, $stateParams) {
if ($stateParams.videoId) {
var video = videosService.getVideoById($stateParams.videoId);
return video;
}
}]
}
}

注意:状态定义中的参数声明已从 params: ['id'] 更改为 params: { id: {} }

<a ui-sref="videoParent.Display.video({videoName:{sVid.slug}, videoId:{sVid.videoID}})"><p>[[sVid.name]]</p></a>

UI 路由器版本:~v.0.2.10

关于javascript - 隐藏 URL ui-sref (ui.router) 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com