unfocus angularjs angularjs-directive

angularjs - unfocus - ng-model



¿Cómo pasar la acción ejecutable ng-click(&) en la variable a la directiva? (1)

Vista HTML con directiva:

<div click aaa="aaa()" action="action"></div>

Controlador: me gusta pasar la función bbb () en $ scope.action:

app.controller(''MainCtrl'', function($scope) { $scope.aaa = function () { alert(''aaa''); } $scope.bbb = function () { alert(''bbb''); } $scope.action = ''bbb()''; });

Directiva:

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?'' } });

No sé cómo evaluar la action para ser reemplazado por bbb() .

aquí está plunker: http://plnkr.co/edit/d8DtsNARKPPJwk2SO2WJ


$scope.action necesita ser un puntero a $scope.bbb y no solo una cadena que hace referencia a él sin apretar. "bbb() en el controlador no significa nada, mientras que $scope.bbb() es lo que usted creó y necesita usar. Cuando está en HTML, $scope está implícito, por lo que puede salirse con la suya escribiendo simplemente aaa()

En su plantilla y su HTML, también debe llamar a la action , del mismo modo que llama aaa .

http://jsfiddle.net/DFcJf/

HTML

<div ng-app="app" ng-controller="MainCtrl"> <div click aaa="aaa()" action="action()"></div> </div>

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; });