como manter o estado da interface do usuário na mudança de modelo no angular2?

qual é a melhor maneira de manter o estado da interface do usuário em angular2? Atualmente, estou tendo problemas dentro de um único componente.

Então, eu estou tentando manter a classe usando o ngif, mas não sei como colocar essa condição para mudar de classe no ngif.

 *ngif="uiState=desired.elementId" // how to set class here?

e existe alguma outra maneira de manter o estado em angular2? no entanto, eu até tentei usar serviços observáveis, mas os dados vêm primeiro e são processados mais tarde, portanto não funcionam. Existe alguma função que eu possa chamar onviewupdate complete etc?

ATUALIZAR

meu serviço observável

this.ObservableService.getData.subscribe((val) => {
                     this.data= val;
                  });

meu html

<div *ngFor="let foo of data">
    <div class="collapsible-header" [id]="foo.array1.value1">
        {{poo.array1.value2}} , <h6>posted on {{foo.array1.value3}}</h6>
    </div>
    <div class="collapsible-body">
        <p>{{foo.array2.value2}}</p>
    </div>
    <ul class="collection">
        <li *ngIf="foo.array4.value1>= 1" class="active collection-item">
            <div *ngFor="let p of foo.array4">
                <span class="title">{{p.somevalue}}</span>
            </div>
        </li>
     </ul>
     <div>
            <input type="text" (ngModel)="mymodel.value1" ">
            <button type="submit" (click)="callback(mymodel)">Submit</button>
     </div>
</div>

e minha função de retorno de chamada

callback(){
...
this.ObservableService.brodcast(data);
...
}

Assim, quando novos dados estiverem disponíveis, não quero que todo o html seja renderizado<ul class="collection"> Desde a<div class="collapsible-header" terá uma aulaactive quando o usuário o abriu. mas nas alterações de modelo, ou seja, dados atualizados estão disponíveis, tudo é redefinido. Então, como posso gerenciar esse estado? Se precisar de mais detalhes, entre em contato. Eu segui este artigohttp://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html mas não está funcionando no meu caso ou estou fazendo algo errado, não sei.

questionAnswers(1)

yourAnswerToTheQuestion