gpt4 book ai didi

javascript - 从一个 Controller 设置到要在另一个 Controller 上使用的服务的值在使用 Angular js 刷新页面时不返回任何值(Angular 的新功能)

转载 作者:行者123 更新时间:2023-12-03 02:02:08 26 4
gpt4 key购买 nike

我有一个 HTML 代码

<div id="{{item.codeName}}">
<a class="search-results" href="" ui-sref="app.location" ng-click="vm.setValue(item._id)">{{item.codeName}} </a><br><br>
</div>

在 Controller 上的ng-click上,我通过将id传递给controller1来调用函数vm.setValue,我将id值传递给要设置的服务。

在 Controller 1中

 vm.setValue = function(Id){
service.setId(Id);
}

我的服务

angular.module('myApp', [])
.service('setProperties', function () {
var _Id = null;
function getId(){
return _Id;
}
function setId(Id){
_Id = Id;
}
});

我成功地将 _Id 设置为服务,并立即将 Id 值获取到我的另一个 Controller 中...

在 Controller 2中

 vm.loadDealDetails = function () {      
setProperties.loadSearchDealDetails(setProperties.getId()).then(function(data) {
if (data !== null) {
vm.dealDetailData.push(data);
setProperties.setId(vm.dealDetailData._id);
}
});
}

在controller2中,我在页面加载时调用函数vm.loadDealDetails,通过从传递id值,我从服务loadSearchDealDetails的另一个函数获取数据服务的 getId 函数...再次从数据响应中获取 Id 值,并将其设置为服务...但这在一个过程中仅有效一次

当我加载/刷新页面函数时,vm.loadDealDetails函数被调用,但我没有通过这个setProperties.getId()获得任何值,因为它变空而没有响应。 ...我如何使 getId 也能用于页面加载/刷新请帮忙

最佳答案

您没有获得该值,因为当您重新加载应用程序时,您的应用程序会再次加载,因此 js 文件也会重新加载。所以,它和新鲜的应用程序一样好。

现在,您可以执行以下操作来保存数据:

  1. localStorage分配值。 Check this link并使用angularJS方式实现。
  2. 即使在应用重新加载后,也可以使用服务器 session 保留数据。

关于javascript - 从一个 Controller 设置到要在另一个 Controller 上使用的服务的值在使用 Angular js 刷新页面时不返回任何值(Angular 的新功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49963075/

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