'daki bir hizmetten geçirin ve güncelleyin Hizmetin içindeki bir dizenin değerini alıp güncelleştiren ve onu bir bileşende görüntüleyen çok basit bir uygulama aracılığıyla hizmetleri daha iyi anlamaya çalışıyorum.Bir dizgiyi Angular 2
import {Injectable} from 'angular2/core';
@Injectable()
export class SharedService {
dataString: string;
insertData(data) {
this.dataString = data
}
}
İşte ana 'uygulama' bileşeni var: Burada
hizmettirimport {Component} from 'angular2/core';
import {OtherComponent} from './other';
import {SharedService} from'./shared.service';
@Component({
selector: 'my-app',
providers: [SharedService],
directives: [OtherComponent],
template: `
<input type="text" #someValue>
<button (click)="setSharedValue(someValue.value)">Change value in shared service</button>
<br><br>
<other></other>
`
})
export class AppComponent {
constructor(private _sharedService: SharedService){}
setSharedValue(value){
this._sharedService.insertData(value);
}
}
... ve burada 'öteki' bileşeni var:
import {Component, OnInit} from 'angular2/core';
import {SharedService} from './shared.service';
@Component({
selector : "other",
template : `
I'm the other component. The shared data is:
<p>{{data}}</p>
`,
})
export class OtherComponent implements OnInit{
data: string;
constructor(private _sharedService: SharedService){}
ngOnInit() {
this.data = this._sharedService.dataString;
}
}
Girdiye metin eklendiğinde ve tuşa basıldığında, servis verilerinin alınması ve ayarlanması için sadece 'diğer' bileşeninde girilen değeri görüntülemek istiyorum. Ancak, sadece sessizce başarısız oluyor.
Neyi yanlış yaptığımı açıklayan var mı?
Teşekkür
Güzel cevap. Ama okuma/yazma için kullanabileceğiniz hizmette sadece bir kamu değişkenine sahip olmak yerine Gözlemcileri kullanmanın nedeni nedir? Faydaları nelerdir? –
Bu, bileşeninizde bir dinleyici oluşturmak içindir. Bu nedenle, Mesajları Servis'ten gönderdiğinizde Bileşen Gözlemlenebilir'i dinler ve UI'deki yeni değeri yeniden oluşturur ve görüntüler. Hizmette basit bir kamu yöntemi oluşturursanız, değeri kullanabilirsiniz, ancak değer değişimini dinleyemezsiniz. – tibbus