Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                    
                
        

单击controller1中的按钮时,应调用controller2中存在的功能。
我尝试使用服务,但是没有运气。

检查plunkr以获得代码。

有什么建议么?

最佳答案

代替使用服务,使用broadcast从另一个控制器调用方法。

.controller('ctrl', [
        '$scope', 'svc',
        function($scope, svc) {
            $scope.fun = function() {
                $scope.$emit('sampleEvent')
            }
        }
    ])
    .controller('ctrl1', [
        '$scope', 'svc', '$rootScope',
        function($scope, svc, $rootScope) {
            $rootScope.$on('sampleEvent', function(ev) {
                $scope.fun2()
            })
            $scope.fun2 = function() {
                alert("hi");
            }
        }
    ]);


Demo

10-02 17:47