【发布时间】:2016-04-26 09:02:57
【问题描述】:
我的模板是:
<div [class.special]="scrollOnTop" ></div>
我的班级有一个名为“scrollOnTop”的公共属性,它可以根据滚动事件而改变。
我的班级:
export class AppComponent {
constructor() {
console.log("class initiated with constructor");
this.scrollOnTop = true;
};
public scrollOnTop: boolean;
onScroll(event){
console.log("scroll event", event);
if(event.belowTop){
this.scrollOnTop = false;
console.log("scroll on top is - " + this.scrollOnTop)
}else{
this.scrollOnTop = true;
console.log("scroll on top is - " + this.scrollOnTop)
}
}
};
渲染模板时,div 具有“特殊”类。但如果属性“scrollOnTop”更改为 false,则不会删除“特殊”类。
请帮忙
【问题讨论】:
-
从哪里调用
onScrollEvent()? -
onScroll 功能工作正常,因为我正在检查日志。此事件是从检查 window.scroll 事件的指令发出的
-
如何调用它仍然是相关的。是否在 Angulars 区域内调用它。如果您正在收听
window.onScroll,您可以尝试我添加到更新答案中的建议。 -
blog.thoughtram.io/angular/2016/02/22/…, victorsavkin.com/post/110170125256/…。如果 Angular 没有认识到它需要运行更改检测,那么无论值是否更改,Angular 都不会更新视图。
-
谢谢大家,@Thierry Templier 和 Gunter。谢谢你的协助。另外,现在我知道 Angular2 中区域的惊人概念
标签: angular angular2-template angular2-directives