簡體   English   中英

angularjs中的重定向問題

[英]Redirection issues in angularjs

嗨,我是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.

所以在大多數情況下,例如程序/ The-Big-Bang-Theory的URL

我遇到的問題是,程序名稱中存在斜杠時,例如:-2013/14頂級聯賽,它會重定向到主頁,或者甚至在URL中出現破折號,例如:-真相暴露-外星人得到真相暴露---外星人並遇到錯誤(找不到URL)或getprogrammeidbyname=null is not defined

請幫助我。。在此先感謝。

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

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

請參閱$routeProvider的api文檔

path可以包含以冒號開頭和以星號(:name *)結尾的命名組。 當路由匹配時,所有字符都以給定名稱急切地存儲在$ routeParams中。

您可以在傳遞程序名稱之前使用encodeURIComponent()對其進行編碼嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM