在控制器之间发送数据使用服务。但更好的是什么?
在控制器上使用$on
,在服务时使用$broadcast
;
或者只是javascript对象? (Exp:
myapp.factory('MyService', function(){
var obj = {};
return{
setObject: function(value){
obj.value = value;
},
getObject: function(){
return obj;
}
};
});
答案 0 :(得分:1)
您可以使用相同的服务在两个控制器之间交换数据 例如:
myapp.controller('myController', ['$scope','MyService'
function ( $scope,myService) {
var obj={};
obj=myService.setObject();
$scope.obj=obj;
}]);
myapp.controller('myController2', ['$scope','MyService'
function ( $scope,myService) {
var obj2={};
obj2=myService.setObject();
$scope.obj2=obj2;
}]);
myapp.factory('MyService', function(){
var obj = {};
_setObject = function (value) {
obj.value = value;
return obj;
}
_getObject = function () {
return obj;
}
return {
setObject : _setObject ,
getObject :_getObject
}
});
当一个控制器更改对象时,控制器包含服务对象的引用,另一个控制器对象自动更改,因为它们共享该服务对象的相同引用