2016-06-18 37 views
6
Ben kullanıcı verilerini kurtardı zaman Bootstrap uyarısı görüntülemek istediğiniz

kullanarak önyükleme uyarısı gösteriliyor.angular2

benim kod aşağıdaki gibidir:

html sayfası:

<div class="alert alert-success" *ngIf="saveSuccess"> 
    <strong>Success!</strong> 
</div> 
<form #f="ngForm" (submit)="saveUser(f.value)"> 
     /////Some form fields 
    <button class="form-control btn btn-primary" type="submit">save</button> 
</form> 

app.component.ts:

export class UserProfileComponent{ 
saveSuccess: boolean; 
user: IUser; 

saveUser(user:IUser) { 
    this.headers = new Headers(); 
    this.headers.append('Content-Type', 'application/json'); 
    this.editUserForm = user; 
    this._http.post('api/user/'+this._current_user._id, JSON.stringify(this.editUserForm),{ 
     headers: this.headers 
    }).subscribe(function(data) { 

     // if the update is successful then set the value to true 
     // this is getting updated 
     if (data){ 
      this.saveSuccess = true; 
     } 
     else{ 
      this.saveSuccess = false; 
     } 
    }); 
} 

} Uyarıyı görüntülemek istediğiniz

zaman başarılı POST yapılır.

Ben yapılır tasarrufu zaman başarılı böylece uyarı görüntülenebilir html 'saveSuccess' değişkeni bağlamak nasıl özlüyorum düşünüyorum. Ben onu görmedim

+1

Bana iyi görünüyor - ne çalışmıyor? Konsolda herhangi bir hata var mı? – rinukkusu

+0

Hata yok. Ben hata verecek sanmıyorum. 'SaveSuccess' değişkeni güncellendiğinden ve 'div' değerine bağlı olarak görüntülenir. – Pradeepb

+0

@Pradeepb Bu yöntem benim için çalışmıyor. Mümkünse plunker paylaşabilir misin? –

cevap

4

Son gece, çok geç muhtemelen (Ben Angular2 için yeni). Ancak sorununuz, saveSuccess'u ayarladığınız satır içi işlevinde this içeriğine sahip değil.

Sana lambdas veya "şişman ok fonksiyonu" kullanmak öneririm. Bunun yerine

function(data) { ... } 

size

(data) => { ... } 

this bağlam korunacaktır Bu şekilde yapmak. Sadece satır içi işleve ihtiyacınız olan her yerde kullanın ve artık hiç sorun yaşamayacaksınız! :) lamda fonksiyonu ile


Kodunuz:

export class UserProfileComponent{ 
    saveSuccess: boolean; 
    user: IUser; 

    saveUser(user:IUser) { 
     this.headers = new Headers(); 
     this.headers.append('Content-Type', 'application/json'); 
     this.editUserForm = user; 
     this._http.post('api/user/'+this._current_user._id, JSON.stringify(this.editUserForm),{ 
      headers: this.headers 
     }) 
     .map((data: Response) => data.json) // <-- also add this to convert the json to an object 
     .subscribe((data) => { // <-- here use the lambda 

      // if the update is successful then set the value to true 
      // this is getting updated 
      if (data){ 
       this.saveSuccess = true; 
      } 
      else{ 
       this.saveSuccess = false; 
      } 
     }); 
    } 
} 
+1

Çok teşekkürler. Benim günümü kurtardın :) Böyle bir bilgiyi tanımak için herhangi bir rehber/öğretici var mı? herhangi bir giriş mutluluk duyacağız :) – Pradeepb

+1

Bu oldukça iyidir tek: https://basarat.gitbooks.io/typescript/content/docs/tips/main.html – rinukkusu