Jak wywołać funkcję w AngularJs, gdy route pasuje?
$routeProvider.when('/ticket', {
controller: TicketController,
templateUrl: Routing.generate('ticket_list')
});
Wyświetla prostą listę, na której można wybrać każdy wpis. Jednak po wybraniu nie jest ładowany żaden dodatkowy widok. Każda rzecz jest w ticket_lost template
. Szablon ma kilka ukrytych pól, które są ujawniane po kliknięciu wpisu.
Mogę określić, który wpis zostanie wybrany wewnętrznie przez ustawienie
selectedTicket = 1;
Więc gdy jest taka droga
/ticket/1
Chcę wywołać funkcję, która ustawia selectedTicket na 1. Czy to możliwe? Jak to zrobić? Co muszę zmienić w routingu?
7
Author: Artjom Zabelin, 2013-05-05
1 answers
Spójrz na $ routeParams serwis. Pozwala na ustawienie trasy z parametrami, które będą parsowane przez usługę:
// Given:
// URL: http://server.com/index.html#/ticket/1
// Route: /ticket/:ticketId
//
// Then
$routeParams ==> {ticketId:1}
W Twoim kontrolerze:
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();
});
20
Author: Dmitry Evseev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-05 17:42:27
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-05 17:42:27