¿Cómo mantener el estado de la interfaz de usuario en el cambio de modelo en angular2?

¿Cuál es la mejor manera de mantener el estado de la interfaz de usuario en angular2? Actualmente estoy teniendo problemas dentro de un solo componente.

así que estoy tratando de mantener la clase usando ngif pero no sé cómo poner esa condición para cambiar la clase en ngif.

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

y hay alguna otra forma de mantener el estado en angular2? sin embargo, incluso intenté usar servicios observables, pero los datos vienen primero y se procesan más tarde, por lo que no funcionan, ¿hay alguna función que pueda llamar onviewupdate completa, etc.?

ACTUALIZAR

mi servicio observable

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

mi 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>

y mi función de devolución de llamada

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

así que cuando hay nuevos datos disponibles, no quiero que html completo represente solo<ul class="collection"> ya que<div class="collapsible-header" tendrá una claseactive cuando el usuario lo abrió. pero en los cambios de modelo, es decir, hay datos actualizados disponibles, todo se restablece. Entonces, ¿cómo puedo administrar este estado? Si necesita más detalles, hágamelo saber. Seguí este artículohttp://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html pero no funciona en mi caso o estoy haciendo algo mal, no lo sé.

Respuestas a la pregunta(1)

Su respuesta a la pregunta