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

顯示一個簡單的列表,其中每個條目是可選擇的。但是,在選擇沒有額外的視圖加載。每件事都在ticket_lost template。該模板有一些隱藏的字段,當點擊條目時顯示。如何在路線匹配時在AngularJs中調用函數?

我可以定義條目設置

selectedTicket = 1; 

所以,當有一個像

/ticket/1 

的路線我想打電話給那臺selectedTicket爲1,函數內部選擇​​這是可能的?怎麼做?我需要在路由中改變什麼?

+0

可不可以給你的應用一些更多的信息 - 你是指那沒有元素在你的問題中解釋 - 也許可以提供一個plunkr或小提琴? – callmekatootie 2013-05-05 11:44:12

回答

20

看看$routeParams服務。 它允許設立路線與將由服務解析參數:

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

在你的控制器:

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

我該如何在有售票參數的情況下使我的路線/票證有效? – 2013-05-05 12:46:25

+0

它應與2路使用同一控制器,一個一起工作:ticketId PARAM,一個沒有 – Narretz 2013-05-05 17:07:49

+0

呀,聽@Narretz:你需要2路。更新回答 – 2013-05-05 17:40:14

相關問題