在AngularJS返回空白页之间共享数据 [英] Sharing Data between pages in AngularJS returning empty
问题描述
通常我写SPA的和控制器之间共享数据与服务的简单。
Typically i write SPA's and sharing data between controllers is simple with a service.
我不使用的SPA格式(不使用NG-视图),并试图在页面之间,但在第二页的负荷共享数据(获取数据),它是空的。
I am not using an SPA format (not using ng-view), and trying to share data between pages but on load of the second page (to get data) its empty.
PAGE1(index.html的):
<div ng-controller="CreateList">
<input type="text" ng-model="myValue">
<div ng-click="share(myValue)">Share</div>
</div>
第2页:
<div ng-controller="GeList">
<p>{{ sharedData }}</p>
</div>
JS:
app.controller('CreateList', function($scope, $location, $http, serviceShareData) {
$scope.share= function (selectedValue) {
if (selectedValue === undefined ) {
console.log ("its undefined");
}
else {
console.log (selectedValue);
serviceShareData.addData(selectedValue);
window.location.href = "PAGE2.html";
}
}
});
app.controller('GeList', function($scope, $location, $http, serviceShareData) {
$scope.sharedData = serviceShareData.getData();
console.log($scope.sharedData);
});
app.service('serviceShareData', function() {
var myData = [];
var addData = function(newObj) {
myData.push(newObj);
}
var getData = function(){
return myData;
}
return {
addData: addData,
getData: getData
};
});
下面是一个plunkr: http://plnkr.co/edit/6VHJhirnHZxBpKOvqzI6?p = preVIEW
Here's a plunkr: http://plnkr.co/edit/6VHJhirnHZxBpKOvqzI6?p=preview
推荐答案
有一个多种方式在页面之间共享数据 - 本地存储,会话存储,索引资料,饼干或者你甚至可以传给你的数据为这样一个放慢参数
There is a number of ways to share data between pages - local storage, session storage, indexedDB, cookies or you can even pass you data as a paramter like this:
window.location.href = 'page2.html?val=' + selectedValue;
下面是你的服务怎么可能使用的sessionStorage寻找一个简单的例子:
Here is a quick example of how your service may be looking using sessionStorage:
app.service('serviceShareData', function($window) {
var KEY = 'App.SelectedValue';
var addData = function(newObj) {
var mydata = $window.sessionStorage.getItem(KEY);
if (mydata) {
mydata = JSON.parse(mydata);
} else {
mydata = [];
}
mydata.push(newObj);
$window.sessionStorage.setItem(KEY, JSON.stringify(mydata));
};
var getData = function(){
var mydata = $window.sessionStorage.getItem(KEY);
if (mydata) {
mydata = JSON.parse(mydata);
}
return myData || [];
};
return {
addData: addData,
getData: getData
};
});
Plunkr是这里。
这篇关于在AngularJS返回空白页之间共享数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!