从指令角度调用控制器函数

Angular call controller function from directive

本文关键字:控制器 函数 调用 指令      更新时间:2023-09-26

我为Ionic使用了这个奇特的选择http://codepen.io/mhartington/pen/CImqy(http://jsfiddle.net/q62jx3s6/单选!!)我想在点击select中的项目时执行一个函数getCat from MainCtrl

 $scope.getCat = function(cat) { ..... }

谁能帮我?!请)我也尝试过这个例子,但对我不起作用(Angular:使用&在指令链接函数内部调用控制器函数)

您可以在MainCtrl的作用域中定义一个函数,并在单击任何选项时调用该函数。

$scope.getCat = function() { //your code for getCat function }

因此,当你配置选项(或国家)时,你需要用onclick属性或ng-click来配置它,如下所示:

onclick = "getCat()" or ng-click="getCat()" 

希望它能有所帮助!

我尝试使用$scope$观看并为我工作。但我会等待正确的答案

    $scope.$watch('val', function() { if($scope.val.single != null)  $scope.getCat($scope.val.single); }, true);  

为什么不将"getCat"函数从控制器移动到服务,然后将服务注入指令?

从指令调用控制器函数不是最好的解决方案,因为这样指令与控制器是紧密耦合的。

参考您的评论:

也许你可以在你的指令中要求控制器,然后它被注入到该指令中的链接函数

当指令需要一个控制器时,它会接收该控制器作为其链接函数的第四个参数。

此主题描述如下:角度指令在"创建通信指令"一节中