Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用angular js进行页面刷新时,从一个控制器设置为服务并在另一个控制器上使用的值不会返回任何值(angular js的新增功能)_Javascript_Angularjs_Service_Controllers - Fatal编程技术网

Javascript 在使用angular js进行页面刷新时,从一个控制器设置为服务并在另一个控制器上使用的值不会返回任何值(angular js的新增功能)

Javascript 在使用angular js进行页面刷新时,从一个控制器设置为服务并在另一个控制器上使用的值不会返回任何值(angular js的新增功能),javascript,angularjs,service,controllers,Javascript,Angularjs,Service,Controllers,我有一个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> 我的服务 angular.module('myApp', []) .service

我有一个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>
我的服务

angular.module('myApp', [])
.service('setProperties', function () {
    var _Id = null;
        function getId(){
    return _Id; 
}
function setId(Id){
    _Id = Id;
  }
});
我成功地将_Id设置为服务,并将Id值立即输入到我的另一个控制器中

在控制器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,通过从服务的getId函数传递id值,从服务loadSearchDealDetails的另一个函数中获取数据…再次从数据响应中获取id值,并将其设置为服务…但这在一个过程中只起作用一次

当我加载/刷新页面时,调用了vm.loadDealDetails函数,但我没有通过setProperties.getId获取任何值,因为它变为空而没有响应……我如何使getId也在页面加载/刷新时工作
请帮助

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

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

为本地存储分配值。并使用angularJS方式实现。 即使在重新加载应用程序后,也可以使用服务器会话保留数据。
@HKI345:太好了!厕所
 vm.loadDealDetails = function () {      
setProperties.loadSearchDealDetails(setProperties.getId()).then(function(data) {
            if (data !== null) {  
                vm.dealDetailData.push(data);
                setProperties.setId(vm.dealDetailData._id);
            }
        });
    }