我需要向控制器发送一个参数
function config($routeProvider, $locationProvider) {
$routeProvider
.when('/url-1', {
parameter: 1
})
.when('/url-2', {
parameter: 2
})
.otherwise({
redirectTo: '/url-1'
});
$locationProvider.html5Mode({
enabled: true,
requireBase: true
});
}
这是我的控制器
function MyController(parameter) {
console.log(parameter);
}
在视图中我只有两个链接
<a ng-href="/url-1">url-1</a>
<a ng-href="/url-2">url-1</a>
我是否需要在$ routeProvider中指定控制器? 我只有一个控制器。我没有加载视图 我只需要根据$ routeProvider
发送的参数做一个console.log(参数) 谢谢你!答案 0 :(得分:0)
这是定义路线的好方法,假设你有100条路线,那么路线定义会增加到那个数字。而是多条路线具有单一通用路线。
并将控制器分配给您可以访问$ routeParams API的路线,以获取路线中可用的参数。
配置
function config($routeProvider, $locationProvider) {
$routeProvider
.when('/url/:id', {
controller: MyController
})
.otherwise({
redirectTo: '/url/1'
});
$locationProvider.html5Mode({
enabled: true,
requireBase: true
});
}
控制器
function MyController($routeParams) {
console.log($routeParams);
}
如果您不想为每条路线放置另一个控制器,那么您可以通过在应用程序的运行块内放置routeChangeSuccess
事件来跟踪路径更改,如下所示
app.run(function($rootScope, $routeParams ) {
$rootScope.$on('routeChangeSuccess', function() {
console.log($routeParams);
}
});
或者你可以在页面控制器内部放置该事件。
function MyController($scope, $routeParams) {
console.log("Parameters on page load "+ $routeParams);
$scope.$on('$routeChangeSuccess', function(event, next, current) {
console.log($routeParams);
}
}
答案 1 :(得分:0)
function config($routeProvider, $locationProvider) {
$routeProvider
.when('/url-1', {
params: {id : 1}
})
.when('/url-2', {
params: {id : 2}
})
.otherwise({
redirectTo: '/url-1'
});
$locationProvider.html5Mode({
enabled: true,
requireBase: true
});
}
function MyController($routeParams) {
console.log($routeParams);
}