Upv*_*ote 7 angularjs angularjs-routing
$routeProvider.when('/ticket', {
controller: TicketController,
templateUrl: Routing.generate('ticket_list')
});
Run Code Online (Sandbox Code Playgroud)
显示一个简单的列表,其中每个条目都是可选的.但是在选择时不会加载额外的视图.每件事都在ticket_lost template.模板有一些隐藏字段,单击条目时会显示这些字段.
我可以通过设置定义内部选择的条目
selectedTicket = 1;
Run Code Online (Sandbox Code Playgroud)
所以当有一条路线时
/ticket/1
Run Code Online (Sandbox Code Playgroud)
我想调用一个将selectedTicket设置为1的函数.这可能吗?怎么做?我需要更改路由?
Dmi*_*eev 20
看看$ routeParams服务.它允许使用将由服务解析的参数设置路由:
// Given:
// URL: http://server.com/index.html#/ticket/1
// Route: /ticket/:ticketId
//
// Then
$routeParams ==> {ticketId:1}
Run Code Online (Sandbox Code Playgroud)
在你的控制器中:
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();
});
Run Code Online (Sandbox Code Playgroud)