簡體   English   中英

可觀察到的更改后,Angular 2父視圖未更新

[英]Angular 2 Parent View Not Updating after Observable change

我有一個Observable服務,用於協調組件之間的數據。 在這種情況下,我試圖使用它來控制哪些組件/ html應該一次可見。

當我將父組件所訂閱的行為主題的值設置為true時,它將成功顯示子組件(transform-additit)。 但是,當我從子組件更新控制該成員的服務成員(mapAddingTransformSubj)時,即使我訂閱了父組件,視圖也不會切換回去。 我確實確認了父級正在正確接收可觀察值。

如果有人可以建議一種更好的方法,我將不勝感激!

父組件html:

<div class="container-fluid custom-container">
    <div *ngIf="!addingTransform">
        //Some html
         <button class="btn btn-default" (click)="addNewTransform()"><span class="glyphicon glyphicon-plus"></span> Add New Transformation</button>
    </div>
   <div *ngIf="addingTransform">
       <transform-addedit></transform-addedit>
   </div>
</div>

父組件.ts:

    //Toggles whether or not to show the Transformation components
    public addingTransform: boolean;
    active: boolean = true;

    //Subscriptions for map create service
    addingTransformSubscription: Subscription;

    //Sets the visible component to the transform add/edit component
    addNewTransform() {
        this.mapAddEditService.setAddingTransform(true);    
    }

    constructor(private _dataService: DataService, private mapAddEditService: MapAddEditService) {
        this.addingTransformSubscription = this.mapAddEditService.getAddingTransform().subscribe(addingTransform => this.addingTransform = addingTransform);
    }
    ngOnInit(): void {
    }
    ngOnDestroy(): void {
    }
}

子組件.ts:

    cancelTransform() {
        this.mapAddEditService.setAddingTransform(false);
    }

    constructor(private _dataService: DataService, private mapAddEditService: MapAddEditService) {
    }
    ngOnInit(): void {
    }

我的部分服務:

@Injectable()
export class MapAddEditService {
    private mapAddingTransformSubj = new BehaviorSubject(false);

    setAddingTransform(addingTransform: boolean) {
        this.mapAddingTransformSubj.next(addingTransform);
    }
    getAddingTransform() {
        return this.mapAddingTransformSubj.asObservable();
    }

剛剛解決了這個問題,這真是一個愚蠢的問題

我意識到ngIf會檢查init,因此綁定到每個父組件html divs中的[hidden]而不是ngIf屬性解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM