Angularjs 如何将变量中的ng click可执行操作(&;)传递到指令中?

Angularjs 如何将变量中的ng click可执行操作(&;)传递到指令中?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,带指令的HTML视图: <div click aaa="aaa()" action="action"></div> 指令: app.directive('click', function () { return { scope: { aaa: '&', action: '&' }, template: '<button

带指令的HTML视图:

<div click aaa="aaa()" action="action"></div>
指令:

app.directive('click', function () {
    return {
        scope: {
            aaa: '&',
            action: '&'
        },
        template: 
            '<button ng-click="aaa()">show aaa (work ok)</button>' +
            '<button ng-click="action">show bbb (not work)</button>' +
            '<br>How to pass ng-click action in variable into directive?'
    }
});
app.directive('click',函数(){
返回{
范围:{
aaa:“&”,
行动:'&'
},
模板:
'显示aaa(正常工作)'+
'显示bbb(不工作)'+
“
如何将变量中的ng click操作传递到指令?” } });
我不知道如何评估要替换为
bbb()
操作


这里是plunker:

$scope.action
需要是指向
$scope.bbb
的指针,而不仅仅是松散地引用它的字符串<代码>“bbb()
在控制器中没有任何意义,而
$scope.bbb()
是您创建并需要使用的内容。当您使用HTML时,
$scope
是隐含的,这就是为什么您只需编写
aaa()
就可以逃脱的原因

在模板和HTML中,还需要调用
action
,就像调用
aaa
一样

HTML


JavaScript

var app = angular.module('app', []);

app.directive('click', function () {
    return {
        scope: {
            aaa: '&',
            action: '&'
        },
        template: 
            '<button ng-click="aaa()">show aaa (work ok)</button>' +
            '<button ng-click="action()">show bbb (not work)</button>' +
            '<br>How to pass ng-click action in variable into directive?'
    }
});
app.controller('MainCtrl', function($scope) {
    $scope.aaa = function () { alert('aaa'); }
    $scope.bbb = function () { alert('bbb'); }

    $scope.action = $scope.bbb;
});
var-app=angular.module('app',[]);
应用程序指令('click',函数(){
返回{
范围:{
aaa:“&”,
行动:'&'
},
模板:
'显示aaa(正常工作)'+
'显示bbb(不工作)'+
“
如何将变量中的ng click操作传递到指令?” } }); 应用程序控制器('MainCtrl',函数($scope){ $scope.aaa=函数(){alert('aaa');} $scope.bbb=函数(){alert('bbb');} $scope.action=$scope.bbb; });
<div ng-app="app" ng-controller="MainCtrl">
    <div click aaa="aaa()" action="action()"></div>

</div>
var app = angular.module('app', []);

app.directive('click', function () {
    return {
        scope: {
            aaa: '&',
            action: '&'
        },
        template: 
            '<button ng-click="aaa()">show aaa (work ok)</button>' +
            '<button ng-click="action()">show bbb (not work)</button>' +
            '<br>How to pass ng-click action in variable into directive?'
    }
});
app.controller('MainCtrl', function($scope) {
    $scope.aaa = function () { alert('aaa'); }
    $scope.bbb = function () { alert('bbb'); }

    $scope.action = $scope.bbb;
});