孤立指令绑定到父函数

时间:2016-07-14 14:09:09

标签: javascript angularjs angularjs-directive

我有一个简单的指令:

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 个答案:

答案 0 :(得分:1)

Isolated指令与其父级隔离,因此名称。如果父项应该向指令提供某些内容,则应将其作为属性传递。

可以用继承范围and use bindToController binding instead替换隔离范围。但是,这可能表明存在设计缺陷。

  

这是正确的方法吗?

没有