Angular js Как передать параметры в $ location.path () и использовать это в $ routeProvider для маршрутизации

0

При нажатии кнопки у меня есть код для навигации.


$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-адресе.

Теги:
angularjs-routing

1 ответ

0

Поскольку вы не хотите, чтобы параметры отображались в 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";
});
  • 0
    Я не хочу использовать $ rootScope. Мое требование - отправить параметр через $ location

Ещё вопросы

Сообщество Overcoder
Наверх
Меню