gpt4 book ai didi

angularjs - 使用 angular.service 在不同页面之间传输数据?

转载 作者:行者123 更新时间:2023-12-01 00:59:39 26 4
gpt4 key购买 nike

我想使用 angular.service 将数据从一页传输到另一页。我能够从一个页面将数据存储在服务中,但是当我尝试使用不同的 Controller 从另一个页面获取数据时,数据不可用。

我经历了类似的问题,但已经提到的解决方案表明可以使用该服务在同一页面上的 Controller 之间传输数据。

我的问题是:是否可以使用 angular.service 在不同页面之间传输数据?

以下是我尝试过的片段:

Page1.html

<body ng-controller="SearchController as searchCtrl">

<form name="searchForm" id="center" novalidate>

<input type="text" id="searchInput" placeholder="Search " ng-model = "searchCtrl.search.searchText" required/>
<input type="button" id="searchButton" value="Search" ng-click = "searchForm.$valid && searchCtrl.performSearch()"/>

</form>

</body>

Page2.html
<body ng-controller="ResultStoreController as resultStoreCtrl">
<div>
<p>Search Value: {{resultStoreCtrl.data()}}</p>
</div>
</body>

应用程序.js
(function(){
var dummyApp = angular.module('dummyApp',[]);
/**
* Create a new service, so that data can be shared between the controllers.
*/
dummyApp.service('peerSearchResultSharingService',function(){

var results;

return{
storeResults: function(value){
results = value;
},
fetchResults: function(){
return results;
}
}

});


dummyApp.config(function($locationProvider){
$locationProvider.html5Mode(true);
});

dummyApp.controller('SearchController',['$scope','$location','$window', 'peerSearchResultSharingService',function( $scope, $location, $window, peerSearchResultSharingService){

var search ={};
this.performSearch = function(){

peerSearchResultSharingService.storeResults(search.searchText);
$window.location.href ="http://localhost:63342/TestAngular/app/views/Page2.html";

};
}]);



dummyApp.controller('ResultStoreController',['peerSearchResultSharingService',function(peerSearchResultSharingService){
var data;
data = peerSearchResultSharingService.fetchResults();
}]);


})();

谢谢

最佳答案

简答 : 至少不是普通的 Angular 服务。

长答案 :发出新请求会卸载当前加载的 javascript,这意味着存储的模型也将被丢弃。新页面将再次加载所有支持逻辑,因此您的数据将重置为默认值。

将您的应用程序转变为单页应用程序将解决您的问题,因为该服务可以正常工作。

如果你真的打算继续处理多个页面,你需要一个 Angular 绑定(bind)之外的临时容器来存储信息并在下一页中检索它(即本地存储、服务器端或设置 cookie)。

关于angularjs - 使用 angular.service 在不同页面之间传输数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com