2015-06-09 3 views
0

Я пытаюсь выставить ресурс из области действия в область контроллера, вызвав предоставленный в обратном вызове вид. Однако переменная аргумента равна undefined. Что мне не хватает?Передача ресурса из директивы в контроллер

Вот скрипку пример: https://jsfiddle.net/xqknpe5d/

Посмотреть

<div on-my-event="doStuff(foo)"></div> 

Директива

App.directive('myDirective', ['$whateverModule', function($module) { 
    return { 
    restrict: 'A', 
    scope: { 
     onMyEvent: '&' 
    }, 
    link: function(scope, element, attrs) {   
     (scope.onMyEvent) && (scope.onMyEvent('moo'));   
    } 
    }; 
}]); 

Контроллер

ctrls.controller('myController', ['$scope', function($scope) { 
    $scope.doStuff = function(foo) { 
    console.log('moo: ', foo); 
    }; 
}]); 

Цените ваш вид помощь

ответ

2

функцию вызова onMyEvent, как это в вашей функции связи вашей директивы. Вы должны отправить объект с именем параметра ('foo') в качестве ключа и 'moo' в качестве значения.

link: function(scope, element, attrs) {   
     (scope.onMyEvent) && (scope.onMyEvent({foo: 'moo'}));   
    } 

Read more about & binding here.

+0

Большое спасибо – kidwon

Смежные вопросы