我有两个控制器:OperationController和DateController。在OperationController中,我有$ scope,包含" operations"阵列。我可以从我的应用程序更改此操作(删除,更新,添加...)。
我有第二个控制器,可以计算日期和天数。值。这个DateController需要从OperationController获取数据,然后它将计算days-data。它需要在每次操作更新时计算它。
如何绑定这两个控制器,因此DateController可以在第一次启动和每次数据更新时从OperationController获取数据?
答案 0 :(得分:2)
使用工厂/服务存储operations
数组,只要OperationController
控制器中的值更改,就会更新值
myApp.factory('myService', [function() {
var operations = {};
return {
getOperations: function() {
return operations
},
setOperations: function(op) {
operations = op;
},
}
}])
.controller('OperationController', [function($scope, myService) {
$scope.operations = {};
$scope.$watch(function() {
return $scope.operations;
}, function() {
myService.setOperations($scope.operations);
});
}])
.controller('DateController', [function($scope, myService) {
$scope.operations = myService.getOperations();
}]);
答案 1 :(得分:1)
有几种方法可以做到这一点,但推荐的方法可能是使用service来存储operations
相关逻辑,并在两个控制器中声明对该服务的依赖性