我有2個指令,1指令是一個工具提示的內容,我有另一個指令在上層的HTML,看看我是否懸停在該元素打開工具提示,現在我想這個父指令,當我懸停在它應用的元素上時,調用子指令內的函數,這將檢查工具提示是否有空間去頂部或其他明智的,它將打開到底部。來自父指令的角度調用指令函數
到目前爲止,我想這
.directive('upDown', function() {
return function(scope, elem) {
elem.bind('mouseenter', function() {
scope.$broadcast('setPos');
});
};
})
這是父指令,它看看我的元素,並tryes上懸停廣播發送到子指令。
.directive('contentTooltip', function($window) {
return {
restrict: 'C',
require: '^updown',
link: function(scope, elem) {
var calculatePos = function() {
var scrollTop = this.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
var windowHeight = $window.innerHeight;
var elementOffset = elem.offset().top;
var elementHeight = elem[0].offsetHeight;
console.log('scrollTop = ' + scrollTop + ' & windowHeight = ' + windowHeight + ' & elementOffset = ' + elementOffset + ' & elementHeight = ' + elementHeight);
if (scrollTop + windowHeight < elementOffset + elementHeight) {
elem.addClass('icon-bottom');
}
else {
elem.removeClass('icon-bottom');
}
};
scope.$on('setPos', function() {
alert('abc');
});
}
};
})
這是我想接收廣播子指令,但它不工作:(
是否有任何其他方式從父指令訪問子指令?
謝謝你在前進,丹尼爾。