私はIonic2を使用しています。私はjsonデータの束を返すサービスを作成しましたが、 "概念"の理解に問題があります。オブザーバブルの仕組みの理解
私は物事が私のために奇妙な取得ページのthatsでそれらを使用しようとすると、私は私の両方の機能を理解
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import 'rxjs/Rx';
@Injectable()
export class PlaceService {
constructor(private http: Http) {}
getPlaces()
{
let url = '/api/43.009953/-81.273613/b502daab-2c7b-4cea-a00e-dc5aa6b58196';
return this.http.get(url).map(res=>res.json())
}
getPlace()
{
let url = '/api/getplace/b502daab-2c7b-4cea-a00e-dc5aa6b58196/6';
return this.http.get(url).map(res=>res.json())
}
}
はObserables返しますがいます。あなたは私がthis.place = data.Placeフラットな特性とコレクションのプロパティを持つJSONオブジェクトであるを持って見ることができるように
はこちらのページ
public placeName:string;
public place:any;
public amenities: any;
constructor(public navCtrl: NavController,
public placeService: PlaceService,
public navParams: NavParams,
public actionSheetCtrl: ActionSheetController) {
let placeId = navParams.get("placeId");
placeService.getPlace().subscribe(data=>{
this.place = data.Place;
this.placeName = this.place.Name;
this.amenities= data.Amenities;
console.log(this.amenities);
});
}
の.TSでそれを使用してコードです。
私の観察可能なすべてのフラットプロパティのようですが、私は自分のページにプロパティを作成しなければならないので、htmlでアクセスできます。例えばthis.placeName = this.place.Name
なぜカント私は私の全体のJSONオブジェクト(フラットおよび収集プロパティ)で一つのオブジェクトを持っており、私のページにこのようにそれを参照
{{place.Name }}
これは正しいとは限りません。 1つのオブジェクトだけをテンプレートにプッシュし、そのプロパティに必要な深さまでアクセスできなければなりません。 subscribe()の中の 'console.log(data)'のときに何が見えますか?また、 'this.data = data'を実行してテンプレート'
'のデータを補間するとどうなりますか? – AngularChefコンソールにオブジェクトを表示するとき、すべてのプロパティを持つ正しいjsonオブジェクトです。{{place.Name}}ページからアクセスしたときに、 "Name"プロパティが見つかりません。 – Zoinky
{{place? .Name}}それが動作する – Zoinky