Angular 2 – * ngif no se actualiza cuando la actualización de la variable se puede suscribir oberservable

en el html tengo advertencia solo debe mostrarse cuando se produce un estado de error como thius

<div class="alert alert-danger" *ngIf="error"> <strong>Not saved!</strong> There was an error when saving the project. Please try again later. </div> 

esto funciona bien pero cuando establezco el valor de un observable, ngIf no obtiene el valor actualizado.

Aquí el código simplificado que siempre establece el error como verdadero para propósitos de testing

 export class createProjectComponent { constructor(private service:ProjectsService){ } model = new myModel(); error = false; submitForm(){ this.service.createProject(this.model).subscribe(i=>{ this.error=true; } } 

¿Hay algún tipo de notificación que deba activar?

Puedes probar si esto soluciona tu problema:

 constructor(private cdRef:ChangeDetectorRef) {} submitForm(){ this.service.createProject(this.model).subscribe(i=>{ this.error=true; this.cdRef.detectChanges(); } } 

Si lo hace, hay algún código en this.service.createProject(this.model) que causa la ejecución dejando la zona de Angulars.

actualizar

No necesita esto si usa ()=> todas partes en lugar de function () y si no pasa funciones solo por nombre como someFunc(mycallback) sino que en su lugar con someFunc(() => mycallback()) o someFunc(mycallback.bind(this))

Encontrado el error this cambia en la observación this apunta al osbervable ya no al componente.

entonces tengo que get una reference del componente a una variable y establecer el error en esta reference en verdadero.

código de trabajo se ve así:

 var component = this; this.service.createProject(this.model).subscribe(i=>{ component.error = true;