在angularjs中使用另一个控制器中的控制器对象

时间:2015-10-13 06:34:21

标签: angularjs

我有两个控制器控制器A和控制器B. controller A有一个对象$ scope.operation = {};这是一个包含细节的json。

在控制器B中,我想比较这个json对象的细节,然后在COntroller B中运行一个函数。如何实现这一点。谢谢

1 个答案:

答案 0 :(得分:3)

使用工厂/服务存储operations数组,只要ControllerA控制器中的值更改,就会更新服务中的值。

myApp.factory('myService', [function() {
        var operations = {};
        return {
            getOperations: function() {
                return operations
            },

            setOperations: function(op) {
                operations = op;
            },
        }
    }])
    .controller('ControllerA', [function($scope, myService) {
        $scope.operations = {};
        $scope.$watch(function() {
            return $scope.operations;
        }, function() {
            myService.setOperations($scope.operations);
        });
    }])
    .controller('ControllerB', [function($scope, myService) {
        $scope.operations = myService.getOperations();
    }]);