2016-04-10 22 views
0

Köşeli js'de yönlendirme için açısal kullanıcı arabirimini kullanıyorum. http://servername/#/news/14 gibi bir URL'im var. Ancak diğer ad kullanmak ve URL'leri http://servername/#/news/news_title gibi kullanmak istiyorum. Açısal UI'da mümkün mü?UI yönlendiricideki takma adlar nasıl kullanılır?

İşte benim yapılandırma Tabii

angular.module('News', ['ui.router']) 
    .config(function ($stateProvider, $urlRouterProvider) { 
    $stateProvider 
     .state('news', { 
     url: "/news", 
     templateUrl: "modules/news/views/news.html", 
     controller: 'NewsCtrl' 
     }) 
     .state('news.detail', { 
     url: '^/news/:id', 
     views: { 
      '@': { 
      templateUrl: 'modules/news/views/news_detail.html', 
      controller: 'NewsDetailCtrl' 
      } 
     }, 
     }); 
    }) 
+0

Yapılandırma komut dosyanızı verebilir misiniz? –

+0

Benim soruda config güncelledim .. – bittu

cevap

0

mümkün olmasıdır. Ancak, bunun gerçekleşmesi için, bir id olduğunu tahmin etmek için bir şekilde news_title'u 14'e eşleştirmeniz gerekir. Sen gibi bir şey yazabilirsiniz: Bu durumda

$stateProvider 
    .state('news', { 
     url: "/news/:news_title", 
     templateUrl: 'news.html', 
     ... 
    }) 

, sen http://http://servername/#/news/latest_bbc_news gibi url yazabilirsiniz denetçiniz sen yapacaksın 14 için news_title Aşağıdaki yerlerde de bağlıdır nasıl eşleştiği $stateParams

kullanarak :news_title alabilirsiniz modeli.

güncelleme muhtemelen böyle bir şey yazabilirsiniz Örneğin

:

sonra
$stateProvider 
    .state('news', { 
     url: "/news/:news_title", 
     templateUrl: 'news.html', 
     resolve : { 
      news_item: function(NewsService, $stateParams) { 
      return NewsService.getByTitle($stateParams.news_title); 
      }, 
     }, 
     controller:['$scope','$state','news_item', 
      function ($scope , $state , news_item){ 
      $scope.news_item= news_item; 
     }] 
    }) 

yılında senin NewsService size yöntemini getByTitle uygulamak ya doğrudan backend başlığa göre haberleri almak, ya da eğer ihtiyaç arka uç tüm haberleri alıp

var news = [ 
    {ID: 1, Title : 'A', Content : 'XXXXXXXXXXXXXXXXXXXX',}, 
    {ID: 2, Title : 'B', Content : 'YYYYYYYYYYYYYYYYYYYY',}, 
]; 

gibi bir değişkende önbelleğe ve kendi kod yazmak zorunda bunun içinden geçmek ve başlık ile ihtiyacınız olan haberleri bulmak.

Yine, ui yönlendiricisi sizin için yönlendirme kurallarını ayarlamakta, doğru içeriği sunmak her zaman sizin sorumluluğunuzdur. Yani ui-router'ın hangi haberin 14 ve başlığa sahip olduğuna dair bir fikri yok, sadece arka uçtan alınabilir ve sizin tarafınızdan işlenebilir.

+0

Sadece news_title haber kimliğine eşleştirmek için problemler yaşıyorum ... bana biraz çözüm sağlayabilir misiniz? – bittu

+0

gibi birçok seçeneğiniz vardır, örneğin news_title'ı doğrudan arka ucunuza gönderebilir ve arka taraftaki haberleri şu şekilde bulabilirsiniz: news_title. ya da tüm haberleri bir araya getirebilir ve kontrolörünüzde, tüm haber dizisine girebilir ve haberleri şu şekilde bulabilirsiniz: news_title. –

+0

istiyorsanız açısal modelinize bu mantığı da açabilirsiniz. Açısal UI, takma adları kullanmak için bazı özellikler sağlar mı? – bittu

İlgili konular