UI-Router中带有井号的URL参数

4
我正在处理我的Angular应用程序的路由,但似乎找不到以下内容:
在此URL中,#参数应保留#参数并获取参数数据。 现在它会删除#并转到example.com / parameter。
如果我转到 example.com/#parameter,它应该像转到 example.com/parameter 一样运行。
在我的app.js中,我有以下内容:
 url: "/:bandName"

将这些数据与$stateParams一起发送到我的控制器,

有没有办法保留URL中的井号?

-- 编辑

因此,以下是在输入时使用/#parameter的某些可行代码。

        $urlRouterProvider.when(':#bandName', '/:bandName')
                .otherwise('/');
        $stateProvider.state('appband', {
                    url: "/:bandName",
                    templateUrl: "main.php",
                    controller: 'mainController'
        })

 $locationProvider.html5Mode(true);

如果我在浏览器输入 example.com/#randomBandName,我会被重定向到 example.com/randomBandName,同时我可以在控制器中获取randomBandName 参数。

所以我的需求是当我输入 example.com/#randomBandName时,网址不改变,同时我仍然可以在控制器中获取 randomBandName 参数。

但是,如果我删除 $urlRouterProvider.when(':#bandName', '/:bandName') ,网页就会变成空白页。


你是否正在使用“$locationProvider”? - cirrusio
是的,我正在使用 $locationProvider - bytesbase
你可以在你的问题中加入这个内容和如何实现吗? - Braiam
1个回答

1
这里有一些看起来可疑的地方:
尾随斜杠
你是否在使用HTML5模式来处理URL?如果你认为param更像是一个资源,我建议使用这种URL设置url: "/parameter"
你也可以阅读这篇文章 - https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-make-a-trailing-slash-optional-for-all-routes 查询参数
如果你想让param成为一个查询参数,那么你需要这个... url: "/?parameter" 更多信息请参见-https://github.com/angular-ui/ui-router/wiki/URL-Routing#query-parameters

好的,参数可以是数据库中任何给定的乐队,进入后会重定向到该乐队的音乐。目前它可以在没有井号的情况下工作。 - bytesbase
这些URL应该是RESTful的吗?像/bands/{band_name}还是你想要去/bands?{band_name}。无论哪种方式,从ui.router状态的角度来看,更改都是微不足道的。 - jusopi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接