所以我试图切换单独的组件中的一个元素,同时触发该功能来改变离子选项卡组件中的布尔值到目前为止,我有这个。使用服务切换ngIf与单独的组件?
//App.module.ts - 减少为简洁
import { AppGlobals } from './globals';
@NgModule({
providers: [AppGlobals]
})
//Globals.ts着想
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/share';
import 'rxjs/add/operator/startWith';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
@Injectable()
export class AppGlobals {
// use this property for property binding
public showSearch:BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
setShowSearch(search){
this.showSearch.next(search);
console.log(search);
}
}
// Tabs.ts
import { AppGlobals } from '../../app/globals';
constructor(private _appGlobals: AppGlobals) {
this._appGlobals.showSearch.subscribe(value => this.search = value);
}
toggleSearch() {
this.search = !this.search;
console.log(this.search);
}
//Tabs.html
(ionSelect)="toggleSearch();"
//这是对某些HTML的单独组件
<div *ngIf="search" [ngClass]="{'slideInRight':showSearch, 'fadeOut':!showSearch}" class="search-filters animated">
内然而,这似乎并没有被工作,我切换值但全球“showSearch”似乎保持不变。在两个组件之间实现元素切换的正确方法是什么?
任何帮助都是非常赞赏。
@VladuIonut不会出现有所作为不幸 – Alsh