2016-07-14 2 views
1

У меня есть простая директива:Изолированная директива связывание с родительской функцией

let directive = { 
    restrict: 'EA', 
    templateUrl: 'app/components/video-player/video-player.html', 
    scope: { 
     someFunction:'=' 
    }, 
    ... 
} 

template: 
<div class="video" ng-click="vm.someFunction(vm.someId)"></div> 

directive: 
<video-player some-function="main.ctaClick"></video-player> //controllerAs main 

export class MainController { 
    ... 
    someFunction(){ 
     // How do I get the correct this here without using $parent? 
     let context = this.scope.$parent.main; 
    } 
} 

В принципе мне интересно, если есть способ использовать контекст родительской области, когда двухсторонний связывание функции, как это? Правильно ли это?

ответ

1

Изолированная директива изолирована от ее родителя, отсюда и название. Если есть что-то, что должно быть предоставлено директиве родителем, оно должно передаваться как атрибут.

Можно заменить изолированную область с унаследованной областью and use bindToController binding instead. Однако это может указывать на конструктивный недостаток.

Это правильный способ сделать это?

Номер

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