【发布时间】:2018-02-25 02:55:40
【问题描述】:
我刚刚在 ionic 中创建了一个加载组件,以便在从服务器(HTTP req/res)获取数据时将其注入任何页面作为加载。我以某种方式设法将它导入 app.module.ts 文件(因为这是我第一次)。 现在我无法将它注入我的模板中
以下是我的自定义组件ts文件
@Component({
selector: 'loader',
templateUrl: 'loader.html'
})
export class LoaderComponent {
text: string;
splash: boolean;
constructor() {
this.splash = false;
}
show(){
this.splash = true;
}
hide(){
this.splash = false;
}
}
以及组件的 HTML
<div id="custom-overlay" [style.display]="splash ? 'flex': 'none'">
<div class="flb">
<div class="Aligner-item Aligner-item--top"></div>
<img src="assets/imgs/logo.png">
<div class="Aligner-item Aligner-item--bottom"></div>
<div class="brand-name">
<strong>TULASIBAUG</strong>
<p>NOW ONLINE</p>
</div>
</div>
</div>
还有很多 CSS.... 输出是这样的 Loader Output
在我的 app.module.ts 中,我在声明和提供者数组中添加了组件
import { LoaderComponent } from '../components/loader/loader';
@NgModule({
declarations: [
LoaderComponent
],
providers: [
LoaderComponent
]
})
现在我正在尝试将这个组件添加到我的 home.html 文件中
<loader></loader>
<ion-header>
<!-- Some Code -->
</ion-header>
<ion-content>
<!-- Some Code -->
</ion-content>
最后在我的 home.ts 我正在这样做
import { LoaderComponent } from '../../components/loader/loader';
constructor(public dataProvider: DataProvider,public loaderComponent:LoaderComponent) {
this.getPlacesData();
}
getPlacesData(){
let instance = this;
this.loaderComponent.show();
this.dataProvider.getPlaces().subscribe((res)=>{
setTimeout(function(){
instance.loaderComponent.hide();
},2000);
}) // provider end
}
请告诉我我哪里出错了.. 使用一些代码进行适当的解释将非常有帮助。 谢谢……
编辑:我发现是函数
this.loadingComponent.show()
没有被调用..我无法从 home.ts 文件中操作 loadingComponent 的任何变量..
【问题讨论】: