如何调用路由匹配时AngularJs功能? [英] How to call a function in AngularJs when route matches?
问题描述
$routeProvider.when('/ticket', {
controller: TicketController,
templateUrl: Routing.generate('ticket_list')
});
显示一个简单的列表,其中每个条目是可选的。但是在选择没有多余的看法是加载。每一件事情是 ticket_lost模板
。该模板有一些隐藏的字段被点击进入时显露。
displays a simple list where each entry is selectable. However on select no extra view is loaded. Every thing is in ticket_lost template
. The template has some hidden fields that are revealed when entry is clicked.
我可以定义通过设置该条目内部选择
I can define which entry is selected internally by setting
selectedTicket = 1;
所以,当有一个像
So when there is a route like
/ticket/1
我想打电话给那台selectedTicket到1之间的功能是可能的吗?怎么做?我有什么路由改变?
I want to call a function that sets selectedTicket to 1. Is that possible? How to do that? What do I have to change in routing?
推荐答案
看看 $ routeParams 服务。
它允许建立与路线将由服务解析参数:
Take a look at $routeParams service. It allows to set up route with parameters which will be parsed by service:
// 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();
});
这篇关于如何调用路由匹配时AngularJs功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!