sharedService()
を作成して、特定の場所にあるすべてのアイテムを取得しました。デフォルトのID値は3
ですが、変更できるドロップダウンメニューがあります。ロケーションId: 4, Id: 5
。Angular2 SharedServiceはデフォルトとしてIDを渡しますが、変更可能です
private sourceSiteId = 3;
getOriginSite() {
return this.http.get('http://www.example.com/api/Orders?sourceSite=' + this.sourceSiteId)
.map(res =>res.json());
}
はその後、私は、ユーザーの変更の場所が、それはまた、選択した場所にアイテムベースのリストを更新する必要がある場合、それは*ngFor
使用してアイテムや出力を得るために、私のコンポーネントでこのsharedService
を呼び出します。
編集:私は間違った機能を入れて、それはまた、場所を選択するときに更新する必要があるngOnInit()
getOrdersFromOrigin() {
this.sharedService.getOriginSite()
.subscribe(data => {
this.items= data.Results
}
項目リストngFor
に呼ばれているこのいずれかでなければなりません。これは、
<nav></nav>
<div *ngFor="let x of items">
<button>{{ x.name }}</button>
</div>
というようにnavを持つオーダーリストhtmlです。現時点では、ロジックを取得するためのダミーの場所しか作成していません。これは、注文リストhtmlの子コンポーネントであるnavコンポーネントからのものです。
this.sourceSites = [
{
'Id': 1,
'StoreLocation': 'Eastleigh'
},
{
'Id': 2,
'StoreLocation': 'Portchester'
},
{
'Id': 3,
'StoreLocation': 'Soho'
},
{
'Id': 4,
'StoreLocation': 'Basingstoke'
}
]
<ul class="dropdown-menu">
<li *ngFor="let store of sourceSites"><a href="javascript:;" (click)="changeSite(store.Id);">{{ store.StoreLocation}}</a></li>
</ul>
更新 これは、私はその後、私はサービスに渡す私のクリック機能で位置IDを渡し、私が持っているものです。 getOrderById()
がngOnInit
にトリガされているので、最初のAPIコールが、その後null
これは私のChildComponent changeSite(SourceSiteの){ this.sharedService.getOriginSite(にあるだろうので、しかし、これは、3
のデフォルト値はありません。 SourceSiteの) .subscribe(データ=> { にconsole.log(データ); //私が ngFor親でレンダリングするデータを提供します}) }
SharedService
getOriginSite(sourceSite) {
return this.http.get('http://myexample.com/api/Orders?sourceSite='+ sourceSite)
.map(res =>res.json());
}
sourceSite=3
の値を選択した場所に変更し、場所を選択したらリストを更新するにはどうすればよいですか?
私は自分の投稿を更新しました。私は 'changeSite(id)'に 'Id'を渡しています。これは' SharedService'に渡され、親のHTMLでレンダリングしたいオブジェクトを私に与えます。それは私がこのobjを親に渡す方法を突き詰めたところです。私は最初の解決策を試してみましょう。 – MrNew