2013-05-05 17 views
7
$routeProvider.when('/ticket', { 
    controller: TicketController, 
    templateUrl: Routing.generate('ticket_list') 
}); 

. Ancak, seçimde ekstra görünüm yüklenmez. Her şey ticket_lost template'da. Şablon, giriş tıklandığında ortaya çıkan bazı gizli alanlara sahiptir. Ben 1'e selectedTicket ayarlayan bir işlevi çağırmak istiyorumRota eşleştiğinde AngularJs'de bir işlev nasıl çağrılır? Her girdinin seçilebilir olduğu basit bir liste görüntüler.

/ticket/1 

gibi bir rota var ne zaman

selectedTicket = 1; 

ayarlayarak içten seçilmiş olan giriş tanımlayabilirsiniz

mümkün mü ? Bu nasıl yapılır? Yönlendirmede neyi değiştirmek zorundayım?

+0

uygulamanıza hakkında biraz daha bilgi verebilir misiniz - yapmadın elemanlarını kastediyoruz Sorunuzda açıklanabilir - belki de bir plunkr veya keman da sağlanabilir? – callmekatootie

cevap

20

$routeParams hizmetine bir göz atın. Kumandanızda olarak

// Given: 
// URL: http://server.com/index.html#/ticket/1 
// Route: /ticket/:ticketId 
// 
// Then 
$routeParams ==> {ticketId:1} 

: Bu hizmeti tarafından ayrıştırılır parametrelerle yol kurmak için izin verir

angular.module('myApp') 
    .config(['$routeProvider', function($routeProvider) { 
     $routeProvider.when('/ticket', {controller: 'TicketController'}); 
     $routeProvider.when('/ticket/:ticketId', {controller: 'TicketController'}); 
     $routeProvider.otherwise({redirectTo: '/ticket'}); 
    }]) 
    .controller('TicketController', function ($scope, $routeParams) { 
     var init = function() { 
      if ($routeParams.ticketId) { 
       $scope.ticketSelected($routeParams.ticketId); 
      } 
     }; 

     // fire on controller loaded 
     init(); 
    }); 
+0

Rotanızı/biletimi ticketId parametresiyle ve olmadan nasıl yapabilirim? –

+0

Aynı Denetleyiciyi kullanan 2 yolla çalışmalı, bunlardan biri: ticketId param, – Narretz

+0

olmadan. Evet, @Narretz'i dinle: 2 rotana ihtiyacınız olacak. Yanıtı güncellendi –

İlgili konular