似乎网上存在一些类似问题,但没有解决方案对我有用。
我有一个指令,让我们说包括这样的函数(在指令中):
link: function(scope, element, attrs) {
scope.myfunction = function (){
console.log('function run');
};
}
Witch我想让它从一个控制器运行(调用它),像这样简单:
$scope.myFunction();
所以我可以在指令代码之外的部分页面中调用它,让我们这样说:
<button ng-click="myFunction()">Run</button>
有可能吗?
答案 0 :(得分:6)
最后我通过这样的广播范围得到了解决方案。
在控制器中:
$scope.startFunction = function(){
$scope.$broadcast('startfunction');
};
指令:
scope.$on('startfunction', function () {
console.log('function run');
});