AngularJS ngRoute - указать данные для целевой страницы, при этом данные не отображаются в URL - PullRequest
0 голосов
/ 25 марта 2019

Я использую AngularJS и хотел бы перенаправить пользователя, когда он нажимает кнопку на / page1 / / page2.В настоящее время я использую маршрутизацию AngularJS для этого, используя ngRoute, который прекрасно работает.Однако в дополнение к перенаправлению я также хотел бы передать некоторые данные со страницы 1 на страницу 2, чтобы предварительно заполнить часть HTML-кода на странице 2.Я знаю, что для передачи таких данных я могу либо указать их в параметре пути, например,

/page2/<param1>/<param2>

, либо в качестве параметра строки запроса, например,

 /page2?<key1>=<value1>&<key2=value2>

В обоих случаях.Я могу получить строку запроса или параметры пути в / page2, используя $route.current.params

. Однако я не хочу делать ничего из вышеперечисленного, поскольку я не хочу предоставлять свои данные по URL-адресу пользователю,Есть ли способ в AngularJS, что параметры могут быть переданы в / page2, так что они «скрыты» от URL?

Спасибо

1 Ответ

1 голос
/ 25 марта 2019

Вы можете использовать сервис для хранения данных, которые переживут изменения маршрута.Сервисы - это одиночные пакеты, которые сохраняются в течение всей жизни приложения.

app.service("appData", function() {
    var myData;
    this.set = function(data) {
        myData = data;
    };
    this.get = function() {
        return myData;
    };
}

В контроллере:

app.controller("viewCtrl", function($scope,appData) {
    $scope.myData = appData.get();

    //

    appData.set(newData);

});

Для получения дополнительной информации см. AngularJS Developer Guide - Создание сервисов .

...