transclude指令:true,如何访问父范围变量?

时间:2015-01-02 06:37:10

标签: javascript angularjs angularjs-directive

这是我的代码,

theModule.directive('someVideo', [ function(){

    function link(scope, element, attrs, parentCtrl) {
        var htmlVideo = angular.element(element).find('video')[0];
        var htmlCanvas = angular.element(element).find('canvas')[0];
        scope.$watch('video.src', function(n,o){
            console.log(n,'video.src');
            htmlVideo.src = n;
            htmlVideo.play();            
        });

    };  

    return {
        transclude: true,
        link: link,
        templateUrl: 'partials/someVideo.html'
    };
}]);

分音/ someVideo.html

<video autoplay="true" crossOrigin=''  ng-class="video.id" >    </video>

homepage.html

            <div someVideo />

对于这个块,我监视video.src属性是否已更改(在控制器中)并重新加载html5video元素并播放新源,该部分工作正常,但如何访问video这个指令中的变量(存在于我的控制器中)?

1 个答案:

答案 0 :(得分:0)

  scope: false
  transclude: false

你将拥有相同的范围(使用父元素)

$scope.$watch(...

有很多方法可以访问父作用域取决于这两个选项范围&amp; transclude。