私は、コードのこの部分を持っているAngular2/4 http.getにネストされたアクセス権を「本」
let headers = new Headers({ 'Authorization': `${this.user.Token}` });
let options = new RequestOptions({ headers: headers });
this.http.get(environment.apiRoot + 'Customers/Customer/Search/' + term + '/' + value, options)
.map((response) => {
var Data = response.json().Data;
return Data;
}).subscribe(Data => {
this.data.customer.emailAddress = Data.EmailAddress;
this.data.customer.phoneNumber = Data.PhoneNumber;
this.data.customer.firstName = Data.FirstName;
this.data.customer.lastName = Data.LastName;
this.data.customer.streetAddress = Data.StreetAddress;
this.data.customer.city = Data.City;
this.data.customer.state = Data.State;
this.data.customer.zipCode = Data.ZipCode;
this.data.customer.idNumber = Data.IDNumber;
this.data.customer.ID = Data.ID;
this.data.customer.comment = Data.Comment;
// //Check if customer has exsiting orders
this.http.request(environment.apiRoot + 'Orders/Order/Customer/' + Data.ID, options)
.subscribe(odResponse => {
var Data = odResponse.json().Data;
this.data.orders = Data;
this.existingOrders = Data.length > 0;
}, error => {
this.alertService.error('Encountered an error while trying to get customer order data');
});
}, error => {
this.alertService.error('Encountered an error while trying to get customer data');
});
最初は「GET」「this.data.customer行われたときに、私はに実行しています問題がありますデバッガの「this」がサブスクリプションであり、私のコンポーネントではないのに、2番目の「GET」が実行されたときに「this」がサブスクリプションであり、「this.data.order」が定義されていないと言っても"this.data"
だから、私はサブスクリプションではなくサブスクリプションであることをサブスクリプションでどのように取得するのですか?
try this.data ['orders'] =データ。あなたが '' => '' – CruelEngine
@krzosikを使っているときに、ここで '' this''は常にコンポーネントを指しています。 – Ksliman
'Observable'(他の' http.get'の結果に基づいて 'http.get'を連想させる)を連鎖させたい場合は、' subscribe'の中で 'subscribe'ではなく' switchMap'を使うのが良いです –