【发布时间】:2018-03-11 01:05:38
【问题描述】:
我有一个带有属性shouldNavBeTransparent: boolean = true 的HomePage 页面,它指示页面的导航栏 是否应该有class="transparent。
在窗口达到其高度的 90% 后,我将属性 shouldNavBeTransparent 设置为 true。
我的问题是视图中的属性没有被更改。在视图中,它始终为 false,而在组件中,它正在被更改。
这是我的home.ts 文件:
import {Component} from '@angular/core';
import {IonicPage} from 'ionic-angular';
@IonicPage({segment: "/"})
@Component({
selector: 'page-home',
templateUrl: 'home.html',
})
export class HomePage {
services: Array<{ icon: string, title: string, subhead: string, content: string }>;
shouldNavBeTransparent: boolean = true;
scrollHandler($event) {
this.shouldNavBeTransparent = ($event.scrollWidth * 0.9) < $event.scrollTop;
console.log(this.shouldNavBeTransparent);
}
}
scrollHandler 中的console.log 输出真假,表示它正在改变:
我在视图中检查属性的部分是(home.html):
<ion-header [class.transparent]="shouldNavBeTransparent">
我触发滚动事件的部分:
<ion-content (ionScroll)="scrollHandler($event)">
即使我写了{{ shouldNavBeTransparent }},我得到的都是真的。
我正在使用 Ionic v3.19.1
【问题讨论】:
-
如何将
scrollHandler设置为滚动事件处理程序? -
@ConnorsFan 感谢您的回复。我已经编辑了这个问题。您现在可以看到我是如何设置滚动事件的。
-
不应该是
$event.scrollHeight * 0.9而不是$event.scrollWidth * 0.9吗? -
不,不应该。尽管如此,声明已经达成,所以没关系。
-
在
home.scss。它总是被应用(因为我无法解决这个问题),这意味着它存在并且有效
标签: angular typescript ionic-framework ionic2 ionic3