所以我試圖切換單獨的組件中的一個元素,同時觸發該功能來改變離子選項卡組件中的布爾值到目前爲止,我有這個。使用服務切換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