我有一些麻烦绑定控制器中定义的函数与指令中的回调函数。我的代码看起来像下面:
在我的控制器:
$scope.handleDrop = function ( elementId,file ) { console.log( 'handleDrop called' ); }
然后我的指令:
.directive( 'myDirective',function () { return { scope: { onDrop: '&' },link: function(scope,elem,attrs) { var myFile,elemId = [...] scope.onDrop(elemId,myFile); } } );
在我的html页面:
<my-directive on-drop="handleDrop"></my-directive>
没有运气上面的代码。从我在各种教程中读到的,我明白我应该在html页面中指定参数?
非常感谢任何帮助!
约瑟夫。
您的代码中有一个小错误,请尝试下面的代码,它应该为您工作
<!doctype html> <html ng-app="test"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.js"></script> </head> <body ng-controller="test" > <!-- tabs --> <div my-directive on-drop="handleDrop(elementId,file)"></div> <script> var app = angular.module('test',[]); app.directive('myDirective',function () { return { scope: { onDrop: '&' },link: function (scope,attrs) { var elementId = 123; var file = 124; scope.onDrop({elementId:'123',file:'125'}); } } }); app.controller('test',function ($scope) { alert("inside test"); $scope.handleDrop = function (elementId,file) { alert(file); } }); </script> </body> </html>