如何从外部控制器的指令调用函数?

时间:2015-09-08 08:31:27

标签: javascript angularjs

似乎网上存在一些类似问题,但没有解决方案对我有用。

我有一个指令,让我们说包括这样的函数(在指令中):

link: function(scope, element, attrs) {

     scope.myfunction = function (){
          console.log('function run');
     };
}

Witch我想让它从一个控制器运行(调用它),像这样简单:

$scope.myFunction();

所以我可以在指令代码之外的部分页面中调用它,让我们这样说:

<button ng-click="myFunction()">Run</button>

有可能吗?

1 个答案:

答案 0 :(得分:6)

最后我通过这样的广播范围得到了解决方案。

在控制器中:

$scope.startFunction = function(){
    $scope.$broadcast('startfunction');
};

指令:

scope.$on('startfunction', function () {
     console.log('function run');
});