angularjs中的重定向问题

Redirection issues in angularjs

本文关键字:问题 重定向 angularjs      更新时间:2024-03-29

嗨,我是angular js的新手。。

我遇到了一些问题,我正在尝试实现一个电视指南网站。我已经在我的application.js文件中实现了promise

这是application.js 的代码

    .when('/programme/:programmename', {                           //Url rewriting 
                templateUrl:"programme/info.html" ,
                resolve: {
                    programmeid: function (userAPI, $q, $route,$rootScope) {
                        var deferred = $q.defer();
                        var url = $route.current.params.programmename;
                        url = url.replace(/-/g, ' ') ;
                        userAPI.getProgrammeid({ programmename: url }, function (r) {
                            deferred.resolve($rootScope.Programmeid= r.getprogrammeidbyname.programmeidbyname.programmeid);
                            // now promise 
                        });
                        return deferred.promise;
                    }
                }
            })
            .when('/channel/:channelname', {                           //Url rewriting
                templateUrl:"channels/details.html" ,
                resolve: {
                    channelid: function (userAPI, $q, $route,$rootScope) {
                        var deferred = $q.defer();
                        var url = $route.current.params.channelname;
                        url = url.replace(/-/g, ' ') ;
                        userAPI.getChannelid({ channelname: url }, function (r) {
                            console.log("this**********************")
                            console.log(r)
                            deferred.resolve($rootScope.Channelid= r.getsinglechannelidbyname.singlechannelidbyname.channelid);
                            // now  promise is resolved,
                        });
                        return deferred.promise;
                    }
                }
            })
 .otherwise({
            redirectTo:'/home'
        });

我正在实施/#!/programme/programmename.

所以我在大多数情况下都会得到例如节目/生活大爆炸的url

我遇到的问题是,当节目名称中有一个斜杠时,例如:-2013/14赛季英超联赛,它会重定向到主页,或者即使url中有一段破折号,例如:-Truth Exposed-Aliens I are goting Truth Exposed-Aliens and are get a error(No url found)or getprogrammeidbyname=null is not defined

请帮我做这件事。。提前谢谢。

您可以在路由中使用*进行匹配,如下所示:

.when('/programme/:programmename*', {

参见$routeProvider 的api文档

路径可以包含以冒号开头、以星号(:name*)结尾的命名组。当路由匹配时,所有字符都被急切地存储在给定名称下的$routeParams中。

在传入程序名之前,可以使用encodeURIComponent()对其进行编码吗?