Javascript 在使用angular js进行页面刷新时,从一个控制器设置为服务并在另一个控制器上使用的值不会返回任何值(angular js的新增功能)
我有一个HTML代码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
<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);
}
});
}