Предыстория: я пытаюсь запустить обратный вызов, когда что-то происходит внутри кода директивы в AngularJS.
Соответствующий код:
HTML:
<img-cropper onselect="updateAvatarData" x="100" y="100" src="{{tempAvatar}}" id="avatarCropper"/>
Контроллер:
$scope.updateAvatarData = function(c){
alert("¡¡¡Funciona!!!!");
};
Директива:
<<more code up here>>
link: function(scope,element, attr) {
scope.wsId = attr.id+'WS';
scope.pvId = attr.id+'preview';
scope.x = attr.x;
scope.y = attr.y;
scope.aspectRatio = scope.x/scope.y;
scope.previewStyle = "width:"+scope.x+"px;height:"+scope.y+"px;overflow:hidden;";
scope.onSelectFn = scope.$eval(attr.onselect);
<<more code down here>>
Проблема в последней строке «scope.onSelectFn = scope.$eval(attr.onselect);». Это "scope.$eval(attr.onselect);" возвращает «неопределенное». Attr.onselect работает нормально, он возвращает имя функции, введенное в атрибуте onselect.
Я сделал другие директивы с функциями, переданными через атрибуты, без проблем, но не могу найти, что я здесь делаю неправильно.
- заранее спасибо