Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 使一个控制器依赖于另一个控制器的范围_Javascript_Angularjs - Fatal编程技术网

Javascript 使一个控制器依赖于另一个控制器的范围

Javascript 使一个控制器依赖于另一个控制器的范围,javascript,angularjs,Javascript,Angularjs,我有两个控制器:OperationController和DateController。在OperationController中,我有$scope,它包含“operations”数组。我可以从我的应用程序更改此操作(删除、更新、添加…) 我有第二个控制器,计算天数和天数的值。此DateController需要从OperationController获取数据,然后它将计算天数数据。它需要在每次更新操作时计算它 如何绑定这两个控制器,以便DateController可以在首次启动和每次数据更新时从O

我有两个控制器:OperationController和DateController。在OperationController中,我有$scope,它包含“operations”数组。我可以从我的应用程序更改此操作(删除、更新、添加…)

我有第二个控制器,计算天数和天数的值。此DateController需要从OperationController获取数据,然后它将计算天数数据。它需要在每次更新操作时计算它


如何绑定这两个控制器,以便DateController可以在首次启动和每次数据更新时从OperationController获取数据?

使用工厂/服务存储
操作
数组,只要
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();
    }]);

每当
操作控制器
控制器中的值发生更改时,使用工厂/服务存储
操作
数组

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();
    }]);

每当
操作控制器
控制器中的值发生更改时,使用工厂/服务存储
操作
数组

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();
    }]);

每当
操作控制器
控制器中的值发生更改时,使用工厂/服务存储
操作
数组

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();
    }]);

有几种方法可以做到这一点,但推荐的方法可能是使用存储
操作相关逻辑并在两个控制器中声明对该服务的依赖性。

有几种方法可以做到这一点,但是推荐的方法可能是使用存储与
操作相关的逻辑,并在两个控制器中声明对该服务的依赖性,但是推荐的方法可能是使用存储与
操作相关的逻辑,并在两个控制器中声明对该服务的依赖性,但是推荐的方法可能是使用存储
操作
相关逻辑并在两个控制器中声明对该服务的依赖关系。

使用服务存储
操作
数组。使用服务存储
操作
数组。使用服务存储
操作
数组。使用服务存储
操作
数组。