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。
我正在使用 AngularJS,我想在用户单击 /page1 上的按钮时将他重定向到 /page2。我目前使用 AngularJS 路由为此使用 ngRoute ,一切正常。但是,除了重定向之外,我还想将一些数据从 page1 传递到 page2 以预填充 page2 上的一些 HTML 。我知道为了传递此类数据,我可以在路径参数中指定它,例如
/page2/<param1>/<param2>
或作为查询字符串参数,例如
/page2?<key1>=<value1>&<key2=value2>
在这两种方式中,我都可以使用 $route.current.params
但是,我不想执行上述任一操作,因为我不想向用户公开我在 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。