通过在角服务传递2个控制器之间的变种? [英] Passing a var between 2 controllers via a service in Angular?
本文介绍了通过在角服务传递2个控制器之间的变种?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有2个控制器类似如下:
I have 2 controllers like the following:
.controller('DashCtrl', function($scope, GCs, GCDetails ) {
$scope.getData = function(id)
{
GCs.get(id)
.success(function(data){
console.log(data); // it is getting the data correctly here.
// I want to pass the data to 'GCDetailCtrl' controller
GCDetails = data;
});
};
})
.controller('GCDetailCtrl', function($scope, GCs) {
console.log(GCDetails); // I am getting an empty object
$scope.itemDetails = GCDetails; //nothing in it
})
我试过很多方法,看到计算器多个线程,但我想不出是什么问题。
I tried many methods and saw many threads on stackoverflow but I couldn't figure out what is the problem.
我的服务是这样的:
.service('GCDetails', function () {
return {};
});
我觉得我的服务是错误的,因为我总是返回一个空的对象。任何帮助吗?谢谢。
I feel like my service is wrong because I am always returning an empty object. any help please? thanks.
推荐答案
这应该工作,是我一直使用的服务是传递数据:
This should work, and is how I always use services to pass data around:
.service('GCDetails', function() {
var myObj = {};
this.setObject = function (val) {
myObj = val;
};
this.getObject = function() {
return myObj;
};
});
另外,在你的控制器确保您拨打 GCDetails.setObject(yourvalue)
从你的控制器,以便它实际上有一个值,当你调用 GCDetails .getObject()
。
Also in your controller make sure that you call GCDetails.setObject(yourvalue)
from your controller so it actually have a value when you call GCDetails.getObject()
.
这篇关于通过在角服务传递2个控制器之间的变种?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文