Javascript 带transclude的指令:true,如何访问父范围变量?
这是我的密码Javascript 带transclude的指令:true,如何访问父范围变量?,javascript,angularjs,angularjs-directive,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];
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'
};
}]);
partials/someVideo.html
<video autoplay="true" crossOrigin='' ng-class="video.id" > </video>
homepage.html
<div someVideo />
对于此块,我正在监视video.src
属性是否已更改(在控制器中),html5video元素是否已重新加载并播放新源,该部分工作正常,但如何访问此指令中的video
变量(存在于控制器中)
scope: false
transclude: false
并且您将具有相同的作用域(与父元素)
根据这两个选项范围&transclude,有很多方法可以访问父范围。尝试了您的答案,得到了相同的输出,然后我意识到我的错误,我使用的是
video
而不是scope.video
。
$scope.$watch(...