1
我爲我的角度應用程序創建了一個模塊,並且我有兩個與兩者都有關的相似指令。角度相同模塊的多個指令
當滾動到達頁面底部以實現無限分頁時,會觸發一個(滾動時)。另一個(fromTop)觸發可用於隱藏/顯示頁面上的「返回頁首」鏈接的「頂部」或「底部」。這是我如何設置它們:
angular.module('scroll', []).directive('fromTop', function() {
return function(scope, element, attributes) {
var raw = element[0]
var scrollDistance = Math.round(window.outerHeight)
window.onscroll = function() {
console.log(window.pageYOffset, raw.scrollHeight + scrollDistance)
if (window.pageYOffset >= raw.scrollHeight + scrollDistance) {
scope.position = 'bottom'
scope.$apply(attributes.fromTop)
} else {
scope.position = 'top'
scope.$apply(attributes.fromTop)
}
}
}
}).directive('whenScrolled', function() {
return function(scope, element, attributes) {
var raw = element[0]
var scrollDistance = Math.round(window.outerHeight)
window.onscroll = function() {
//console.log(window.pageYOffset, raw.scrollHeight - scrollDistance)
if (window.pageYOffset >= raw.scrollHeight - scrollDistance) {
scope.$apply(attributes.whenScrolled)
}
}
}
});
不幸的是,這是行不通的。似乎「whenScrolled」指令覆蓋了「fromTop」之一,並且從頂部永遠不會被調用。但是,如果我刪除「whenScrolled」,「fromTop」被調用就好了。爲什麼是這樣?