[英]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.