$routeProvider.when('/ticket', { controller: TicketController, templateUrl: Routing.generate('ticket_list') });
显示一个简单列表,其中每个条目都是可选的。但是,选择时不会加载额外的视图。每件事都在里面ticket_lost template。该模板具有一些隐藏的字段,这些字段在单击条目时就会显示出来。
ticket_lost template
我可以通过设置来定义内部选择的条目
selectedTicket = 1;
所以当有一条路线像
/ticket/1
我想调用一个将selectedTicket设置为1的函数。怎么做?路由中我必须更改什么?
看一下$ 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(); });