Я пытаюсь передать метод от контроллера в мою директиву. Вот как я это делаю:Директива AngularJS: '&' в изолированной области не работает должным образом
В контроллере:
$scope.getEmployees = function()
{
return {2: 'Jane', 3: 'Bob', 4: 'Smith'};
}
$scope.getSelected = function()
{
return 3;
}
В представлении/HTML:
<mydirective data-placeHolder="Choose an employee.."
data-getOpts="getEmployees()" data-getSelected="getSelected()" />
В директиве:
var dir =
{
restrict: 'E',
templateUrl : 'views/mydirective.html',
scope: {
placeholder: '@',
getSelected: '&',
getOpts: '&'
},
controller: ['$scope', '$element', '$attrs',
function($scope, $element, $attrs)
{
console.log($scope.getOpts());
}],
};
MyApp.directive('mydirective', function()
{
return dir;
});
Однако, следующая строка в контроллере директивы:
console.log($scope.getOpts());
Производит неопределенные, а не возвращает объект или функцию, установленную в функции контроллера getEmployees()
.
Что я делаю неправильно?
@ClickUpvote LOL. Мне нравится это видео ... камни дракона! – zsong