通常我編寫SPA並在控制器之間共享數據對於服務來說很簡單。在AngularJS中的頁面之間共享數據返回空
我沒有使用SPA格式(不使用ng-view),並試圖在頁面之間共享數據,但是在加載第二頁(獲取數據)時它是空的。
PAGE1(index.html的):
<div ng-controller="CreateList">
<input type="text" ng-model="myValue">
<div ng-click="share(myValue)">Share</div>
</div>
PAGE2:
<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
一個不同的應用程序將在page2.html實例化,所以該服務將是一個新的服務,你的數據消失了。 – 2015-04-04 16:45:46
只要SPA被加載,共享只能工作。只要您重定向\刷新頁面,數據將會丟失。 – Chandermani 2015-04-04 16:46:43