AngularJS ngRoute - 为目标页面指定数据,数据不出现在 URL

AngularJS ngRoute - specify data for target page, with data not appearing in URL

我正在使用 AngularJS,我想在用户单击 /page1 上的按钮时将他重定向到 /page2。我目前使用 AngularJS 路由为此使用 ngRoute ,一切正常。但是,除了重定向之外,我还想将一些数据从 page1 传递到 page2 以预填充 page2 上的一些 HTML 。我知道为了传递此类数据,我可以在路径参数中指定它,例如

/page2/<param1>/<param2>

或作为查询字符串参数,例如

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

在这两种方式中,我都可以使用 $route.current.params

在 /page2 中检索查询字符串或路径参数

但是,我不想执行上述任一操作,因为我不想向用户公开我在 URL 上的数据。在 AngularJS 中有没有一种方法可以将参数传递给 /page2,这样它们就是 URL 中的 "hidden"?

谢谢

您可以使用服务来存储在路线更改后仍然存在的数据。服务是贯穿应用程序整个生命周期的单例。

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 - Creating Services