2016-03-23 16 views
0

bu hizmetigözlenebilirlerini (angular2) verileri işlemek için desen nedir

@Injectable() 
export class CarService { 

    constructor (private http: Http) {} 

    getCars() { 
     return this.http.get('someurl') 
       .map(res => <Car[]> res.json())    
       .catch(this.handleError); 
    } 
} 

olduğunu varsayalım ve biz başka bileşende bu abone. Araç bu gibiyse

class Car{ 
    Color:string; 
    Timestamp:any; //this comes as a string in JSON but I want it to be of type Date object 
} 

ve bazı mantığı istiyorum, yani değişiklik tarihi: tarih tipine dize, nerede bu yapılmalıdır?

bir hizmette mi? ve nasıl? Bir sınıfta ? .map() Araba sınıfının kurucusuna çarpacak mı? Bu işlem, ya vereceğini

cevap

2

: Car sınıfı yapıcısında dizilerin map yöntem

return this.http.get('someurl') 
     .map(res => <Car[]> res.json()) 
     .map(data => { 
      data.map((d) => { 
      var date = (...) 
      return new Car(color, date); 
      }); 
      return data; 
     }) 
     .catch(this.handleError); 
  • yararlanan map operatör

    • return this.http.get('someurl') 
           .map(res => <Car[]> res.json()) 
           .map(data => { 
            data.map((d) => { 
            return new Car(color, timestampAsString); 
            }); 
            return data; 
           }) 
           .catch(this.handleError);