使用AngularJS服务将数据从一个html传输到另一个html(控制器之间的数据共享)
Transfer data from one html to another using AngularJS services (data share between controllers)
我已经查找了几个具有类似问题的帖子,但无法找到适合我的情况的解决方案。
我有一个搜索页面,它向后端发送请求,并在页面上填充搜索结果(每个结果都是一个对象)。我显示每个对象的简明视图,并且在鼠标单击特定对象时,用户应被重定向到显示该对象的更详细视图的页面。
在我的JS端,我有一个控制器来处理$http.post
调用并从后端检索对象以显示在第一页上。我在第二页上使用不同的控制器来尝试从第一个控制器获取相关对象(通过 angular 的.service
),但由于某种原因,我在第二页上得到了一个空对象。该服务适用于吸气器和二传手。该服务能够通过第一个控制器很好地设置对象,并且我能够打印它。但是,当重定向到第二页时,在使用第二个控制器的 getter 时,由于某种原因,对象被删除并显示为空。
这是相关代码。服务内容:
app.service('shareService', function(){
var savedData = {}
function set(data) {
savedData = data
console.log(savedData);
}
function get() {
console.log(savedData);
return savedData;
}
return {
set: set,
get: get
}
});
搜索(二传手)控制者:
app.controller('SearchCtrl', function(shareService, $scope, $http) {
$scope.sendSearch = function() {
$http.post("http://localhost:9080/MedNetApp/rest/mednet/searchCollections", json).success(function (response) {
$scope.collections = response.searchResults;
shareService.set($scope.collections);
});
};
});
第二个(吸气器)控制器:
app.controller('CollectionsCtrl', function(shareService, $scope){
$scope.collections = shareService.get();
})
不确定这是否相关,但这也是我设置临时测试按钮以重定向到第二页的 html 部分:
<button id=mixing type = "button" class="btn btn-primary-aligned"
data-ng-click = "go('second-page.html')">temp</button>
因此,在最后,savedData
通过 get()
函数第二次打印时显示为空对象。知道为什么这不起作用吗?还是将数据发送到新页面的更好方法?
编辑 - 我应该提到我基本上依赖于这个解决方案:AngularJS - 在页面之间传递数据
因此,经过进一步研究,我遇到了这个解决方案:
在 AngularJS 中的页面之间共享数据返回空
如上面的链接所述,我在服务中使用了sessionStorage,它解决了问题。
使用 localStorage 或 sessionStorage
var myJson ={};
localStorage.set("your_Data",myJson);
// to get the value from another page
var returnJson = localStorage.get("Your_Data");
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- HTML外部javascript加载另一个javascript
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 如何在另一个html文件的框架中包含图像
- 使用数据属性将HTML数据复制到另一个元素
- 如何在JavaScript中将值从一个html页面传递到另一个页面
- 重定向到Angular JS中的另一个HTML页面
- 使用JavaScript打开另一个html页面时传递变量
- 如何在另一个 html 标签内选择 web 元素硒 Web 驱动程序与 html 源
- 从HTML中的另一个文件访问javascript方法
- 显示从 HTML 表单到另一个 HTML 表单的发布值
- 如何将从GWT编译的JS添加/访问到另一个外部HTML / JS项目中
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 如何自动从一个页面移动到另一个页面,然后回到 html 表格中分页的第一页
- 收到事件时加载另一个.html页面
- 为什么谷歌跟踪代码管理器不能安装在正文下的另一个HTML元素中
- Javascript/Jquery试图在另一个函数中应用.html
- HTML链接到页面,但带有另一个图像(可以通过JavaScript更改)
- 获取另一个html标记下的html元素值