SORU
3 Aralık 2012, PAZARTESİ


Dinamik yönlendirme AngularJS

Ben şu anda inşa yönlendirme ile AngularJS bir uygulama var. Çalışıyor ve her şey yolunda.

App.js benim dosya bu gibi görünüyor:

angular.module('myapp', ['myapp.filters', 'myapp.services', 'myapp.directives']).
  config(['$routeProvider', function ($routeProvider) {
      $routeProvider.when('/', { templateUrl: '/pages/home.html', controller: HomeController });
      $routeProvider.when('/about', { templateUrl: '/pages/about.html', controller: AboutController });
      $routeProvider.when('/privacy', { templateUrl: '/pages/privacy.html', controller: AboutController });
      $routeProvider.when('/terms', { templateUrl: '/pages/terms.html', controller: AboutController });
      $routeProvider.otherwise({ redirectTo: '/' });
  }]);

Benim app bir CMS kopyalayın ve yeni bir html dosya içinde ekleyebileceğiniz inşa etti/sayfalardizin.

Hala yeni dinamik olarak eklenen dosyalar için bile olsa yönlendirme sağlayıcı üzerinden gitmek istiyorum.

İdeal bir dünyada, yönlendirme desen olurdu:

$routeProvider.('/sayfa adını kullanarak oluşturulan', { templateUrl: '/sayfa/sayfa adını kullanarak oluşturulan.'denetleyici: CMSController } html);

Eğer yeni bir sayfa ismim olsaydı "" almak için açısal istiyorum "/contact" ve yönlendirme "/pages/contact.html". contact.html

Böyle bir şey mümkün mü?! ve nasıl?

Güncelleme

Ben şimdi yönlendirme benim config bu

$routeProvider.when('/page/:name', { templateUrl: '/pages/home.html', controller: CMSController })

ve benim CMSController:

function CMSController($scope, $route, $routeParams) {
    $route.current.templateUrl = '/pages/'   $routeParams.name   ".html";
    alert($route.current.templateUrl);
}
CMSController.$inject = ['$scope', '$route', '$routeParams'];

Bu doğru değeri için geçerli templateUrl ayarlar.

AncakŞimdi değiştirmek istiyorumng-viewyeni templateUrl değer. Bu nasıl yapılabilir?

CEVAP
22 Mayıs 2014, PERŞEMBE


angular.module('myapp', ['myapp.filters', 'myapp.services', 'myapp.directives']).
        config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/page/:name*', {
            templateUrl: function(urlattr){
                return '/pages/'   urlattr.name   '.html';
            },
            controller: 'CMSController'
        });
    }
]);
  • * Ekleme yapalımdizinler birden çok düzeydedinamik olarak. Örnek:/sayfa/araba/satış listesibu sağlayıcı yakalamak olacaktır

Docs (1.3.0): gelen

Eğer templateUrl işlevi", aşağıdaki ile verilir parametreler:

{Dizi.} - rota parametreleri akım elde konum: $() yol geçerli rotayı uygulayarak"

Ayrıca

(yol, rota) : Yöntem

  • yol grupları bir kolon ile başlayan ve bir yıldız ile biten adlı içerebilir: örneğin:isim*. Tüm karakterler hevesle yol eşleştiğinde verilen ad altında $routeParams saklanır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • incognitotraveler

    incognitotra

    27 Mayıs 2010
  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011