işletilirse ben Angular2 en (RC1) HTTP Hizmet iki kez http.post çağrısı yapar garip sorunu karşılaştım. Uygulamamı ayıklarken hata buldum ve bunun bir tıklama olayı sorunu olmadığını biliyorum. Çekirdek servis çağrısıAngular2 http.post iki kez
public create(json: Object, params?: Object): Observable<T> {
let body = JSON.stringify([json]);
let headers = this.getHeaders();
let options = new RequestOptions({ headers: headers });
return this._http.post(this.createURL(this.getCreateURL(), [], params), body, options)
.map(res => this.handleObjectResponse(res));
}
kadar yol Tüm aramalar kez çalıştırılır. Daha sonra, sorunu takip etmeye başladığımda, işleyici this.handleObjectResponse
'un iki kez çalıştırıldığını öğrendim. Bu yüzden daha da kazarak, bu
constructor(req: Request, browserXHR: BrowserXhr, baseResponseOptions?: ResponseOptions) {
this.request = req;
this.response = new Observable<Response>((responseObserver: Observer<Response>) => {
let _xhr: XMLHttpRequest = browserXHR.build();
_xhr.open(RequestMethod[req.method].toUpperCase(), req.url);
// load event handler
...
..
Yani let _xhr: XMLHttpRequest = browserXHR.build();
üzerine daha sonra başka kesme noktası this.request = req;
bir kesme noktası koymak ve yapılacak nereye @angular/http/src/backends/xhr_backend.ts
ulaştı ve ben ilk kesme kez vurmak öğrendim ama sonra gelen ikinci kesme isabet iki kez geri arama. Ben angular2 iç yapıları aşina herkes bu yanlış yaptım bir hata ya da bir şey gibi görünüyor olmadığını ışık tutup tutamayacağını olmadığını kontrol etmek istedim
Bu beni çılgına olmuştur. GenericService ve FULLSERVICE GenericService uzanır:
Benim kodda bazı soyut genel hizmet sınıfları oluşturduk. Bunların ikisi de soyut ve kullanım jenerikleridir ve farklı bileşenlere enjekte edilen gerçek hizmet sınıflarının tümü GenericService veya FullService'dir. Bu kurulumun çift post infazdan sorumlu olabileceğini düşünüyor musunuz?
Tüm fikirler takdir edilmektedir!
Şimdiden teşekkürler!
P.S.
Bu ile olmaz alır ama aynı zamanda koyar ile olur.
çağıran kodunu paylaşabilir miyim? belki birden bu durumda, gözlemlenebilir üzerinde abone var 'this._http.post (this.createURL (this.getCreateURL(), [], params), vücut, options) .map (res => this.handleObjectResponse dönmek (res)). share(); ' onu çözmelidir https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/share.md – teleaziz
Kutsal saçmalık! Çok teşekkür ederim - bu gerçekten çözdü. Şimdi kafamı ilk başta yaptığım şeylerin etrafına sarmam gerek. Bunu bir cevap olarak göndermekten çekinmeyin, böylece bunu kabul edebilirim ve tekrar teşekkürler! – RVP