Angularjs 如何将变量中的ng click可执行操作(&;)传递到指令中?
带指令的HTML视图: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
<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;
});