我使用这个花哨的选择Ionic http://codepen.io/mhartington/pen/CImqy(http://jsfiddle.net/q62jx3s6/单选!!)我想要点击select中的项目从MainCtrl执行函数getCat
$scope.getCat = function(cat) { ..... }
谁能帮帮我?请 )
我也试过这个例子,但不适用于我(Angular: calling controller function inside a directive link function using &)
答案 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 在“创建沟通指令”部分