Bu başlayanlar soru .. ben Angular2 belgeleri okuyarak edilmiştir , G/kaydetme mevcut işlevselliği iptal marka için kullanılan hizmet Restore Hiyerarşik Bağımlılık Enjektörler bölümde örnek geldi ise düzenleme için Ben bu konuda çok heyecanlıydıAngular2 dokümantasyon - Hiyerarşik Bağımlılık Enjektörler (Service Restore)
export class RestoreService<T> {
originalItem: T;
currentItem: T;
setItem (item: T) {
this.originalItem = item;
this.currentItem = this.clone(item);
}
getItem() :T {
return this.currentItem;
}
restoreItem() :T {
this.currentItem = this.originalItem;
return this.getItem();
}
clone (item: T) :T {
return JSON.parse(JSON.stringify(item));
}
}
yüzden kendim denedim:
Bu hizmettir! Öncelikle böyle değerleri ayarlıyorum: Bundan sonra
ngAfterContentInit(){
this.metadata = {
languages: this.selected_languages,
countries: this.selected_countries,
international: false
}
}
set metadata(metadata: CvMetadata){
this._restoreService.setItem(metadata);
}
get metadata(): CvMetadata{
return this._restoreService.getItem();
}
Ben mesela ngModel ile meta özelliklerinin değerlerini değiştirerek ediyorum: [(ngModel)]="metadata.languages[0]"
soru: Benim sruprise zaman için
Çalışır nugModel ile meta veri özellik değerini güncelleyin - currentItem değişti ve orginalItem sahip değil! Anlamadığım şey bu nasıl mümkün olabilir? Ben ngModel meta veri özelliklerini ayarlamak için setter kullanacağını düşündüm. Ancak asıl veriyi belirlediğimde setter sadece bir kez çağrılır. NgModel, sadece o orijinali değil, yalnızca o andaki durumu değiştireceğini biliyor mu? Bu kara büyü mü?
Biliyorum .. Sadece bunu açıklayacak birine ihtiyacım var, ama maalesef ya da neyse ki sadece siz varsınız!
Teşekkürler!
'ngModel' metadata' nesnesinin kendisini ayarlamıyor/almıyor. Fakat 'diller [0]' öğesi. – Abdulrahman
@Abdulrahman, bununla tartışamaz, ama bu benim karışıklığımın kaynağı değil. Sadece currentItem'i nasıl değiştirir .. ayrıca RestoreService bu işlevselliği nasıl sağlar? –