При нажатии кнопки у меня есть код для навигации.
$s.onClick = function (pageObj) {
$location.path('/Next');
}
Здесь param pageObj - это объект, содержащий ссылку (ex: http://sample..), Название и другие значения ключа. Теперь я хочу передать ссылку, заголовок как params в $ location.path, поэтому я попробовал
$location.path('/Next/' + pageObj.link + '/' + pageObj.title)
Здесь ссылка, параметры названия, которые я хочу использовать на следующей странице. pageObj.link снова http, поэтому полный URL-адрес маршрутизации будет недействительным для навигации.
Вот код для маршрутизации
angularModule.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: '/www/temp/Main.html',
controller: 'MainController'
})
.when('/Next', {
templateUrl: '/www/temp/Select.html',
controller: 'SelectController'
})
});
как проверить параметры и перейти на следующую страницу с этими параметрами. Я не хочу, чтобы эти параметры отображались в URL-адресе.
Поскольку вы не хотите, чтобы параметры отображались в URL-адресе, самым простым способом является использование $rootScope
следующим образом:
Первая страница
$rootScope.routeParams.link = "/my/link/here";
$rootScope.routerParams.title = "My page title here";
Вторая страница
$scope.link = $rootScope.routerParams.link;
$scope.title = $rootScope.routerParams.title;
Заметка
Вам нужно будет определить объект $rootScope.routeParams
в вашем app.config
, аналогично этому:
app.config(function($rootScope) {
$rootScope.routeParams = {
link: null,
title: null
}
});
Вам также потребуется ввести $rootScope
в каждый контроллер, где вы ссылаетесь на него, аналогично этому:
app.controller('FirstPage_Ctrl', function($scope, $rootScope) {
$rootScope.routeParams.link = "/my/link/here";
$rootScope.routerParams.title = "My page title here";
});