从外部触发Angular Controller内部的功能

时间:2016-10-31 16:35:21

标签: javascript angularjs

我正在尝试从控制器外部调用位于角度控制器内的函数。我的代码看起来与此类似:

var myApp = angular.module('myApp'[])
  .controller('MainController', ['$scope', function($scope) {
    $scope.message = function() {
      alert('Hello World');
    };
}]);

function talk() {
  // message()
}

我想要完成的是从我的 talk()函数中访问我的 message()函数。

因为在我的应用程序中涉及很多代码,这对我来说是最简单的方法,但如果你知道更好的解决方案,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用来自控制器的代码超出其范围的不良做法。但是,如果您能够在DOM中选择它们,那么您应该能够获得“范围”。不知道你使用什么版本的角度

取决于您的角度版本:

var scope = angular.element(document.getElementById('yourMainControllerElementID')).injector().‌​get('$rootScope')

angular.element(document.getElementById('yourMainControllerElementID')).scope().message();

.get返回控制器的范围。

在此处阅读更多内容:https://stackoverflow.com/a/16737459/1392634