2013-12-06 4 views
0

Привет Я новичок в угловых JS ..вопросы Перенаправление в angularjs

У меня есть несколько вопросов, которые я получаю при попытке реализовать ТВ-гид website.I осуществивших promise в моем application.js файле ,

Это код 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 в большинстве случаев для ЭГ-программы/The-Big-Bang-Theory

Проблема, которую я получаю, заключается в том, что в названии программы есть косая черта, например: -Premier League 2013/14, она перенаправляется на домашнюю страницу или даже если есть черта в URL-адресе, например: - Truth Exposed - Aliens I am получение правды --- Иностранцы и (Не найдено url) или getprogrammeidbyname=null is not defined

Пожалуйста, помогите мне в этом ... Спасибо заранее.

ответ

0

Вы можете использовать * в маршрутах, чтобы соответствовать следующим образом:

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

См АНИ документы для $routeProvider

путь может содержать именованные группы, начинающиеся с двоеточия и заканчивая звездой (:имя*). Все символы охотно хранятся в $ routeParams под заданным именем, когда маршрут совпадает.

+0

@ agreco..I будет попробовать его, и пусть вам know..Thanks за ответ – Catmandu

+0

@ agreco..It перенаправляет к домашней странице – Catmandu

0

Можете ли вы использовать encodeURIComponent() для кодирования имени программы перед ее передачей?

+0

@darryll я проверить его и вернуться обратно – Catmandu

+0

@darryll .. Он по-прежнему не работает. Вы пытались использовать encodeURIComponent() и перенаправляетесь на домашнюю страницу – Catmandu

Смежные вопросы