Angular调用控制器函数来自指令

时间:2015-02-09 09:24:27

标签: javascript jquery angularjs ionic

我使用这个花哨的选择Ionic http://codepen.io/mhartington/pen/CImqyhttp://jsfiddle.net/q62jx3s6/单选!!)我想要点击select中的项目从MainCtrl执行函数getCat

 $scope.getCat = function(cat) { ..... }
谁能帮帮我?请 ) 我也试过这个例子,但不适用于我(Angular: calling controller function inside a directive link function using &

3 个答案:

答案 0 :(得分:0)

您可以在MainCtrl的范围内定义一个功能,并在您点击任何选项时调用该功能。

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

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

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

希望它有所帮助!

答案 1 :(得分:0)

我尝试使用$ scope。$ watch并立即为我工作。但我会等待正确答案

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

答案 2 :(得分:0)

为什么不将'getCat'功能从控制器移动到服务,然后将服务注入您的指令?

从指令调用控制器函数不是最佳解决方案,因为该指令与控制器紧密结合。

参考您的评论:

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

  

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

此主题在此处描述: Angular directive 在“创建沟通指令”部分