AngularJS ngRoute - 指定目标页面的数据,数据不显示在URL中



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

/page2/<param1>/<param2>

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

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

通过这两种方式,我都可以使用 $route.current.params 检索/page2 中的查询字符串或路径参数

但是,我不想执行上述任一操作,因为我不想将 URL 上的数据暴露给用户。在 AngularJS 中是否有一种方法可以将参数传递给/page2,以便它们从 URL 中"隐藏"?

谢谢

您可以使用服务来存储将在路由更改后继续运行的数据。服务是单例,在应用的整个生命周期中持续存在。

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 开发者指南 - 创建服务。

最新更新