我试图将一个回调函数从控制器传递给一个指令.
这是回调函数代码:
$scope.onImageSelect = function(image) { alert('SET'); $scope.card.image = image; };
指令使用:
<google-image-search callback="onImageSelect" />
指令码:
ngmod.directive('directive',function() { return { templateUrl: '/templates/template.html',scope: { callback: '&' } } });
模板中的回调用法:
<a data-ng-click="callback(url)"></a>
但是,这给我以下错误:
TypeError: Cannot use 'in' operator to search for 'onImageSelect'
我看到很多类似的问题,但不明白我在哪里错了.
解决方法
在从指令调用表达式方法时,您需要以JSON格式传递参数,还应更正您的指令回调属性值以传递函数,如callback =“onImageSelect(image)”
指令使用:
<google-image-search callback="onImageSelect(image)" />
指令模板
<a data-ng-click="callback({image: url})"></a>