2016-06-26 7 views
1

私はドロップダウンリスト( "ピリオド"のリスト)を持ち、この選択が変更されたとき、その期間のデータを編集できるようにフォームの下にフォームを入力する必要があります。私は「どこEmberjsのドロップダウン変更に関するデータの読み込み

メインテンプレートが

{{period-component items=model.periods}} 

とコンポーネントはピリオドここ

<select style="width:100%" onchange={{action "periodChange" value="target"}}> 
    <option>Select a period</option> 
    {{#each items as |period|}} 
     <option value={{period.id}}>{{period.name}}</option> 
    {{/each}} 
</select> 

移入ドロップダウンでレンダリング(私は、コード自体を説明願っています?)うまくコンポーネントをレンダリングするのですモデルにはピリオドに "balance"プロパティがあるピリオドプロパティがあるので、それを緩め始めます(Emberにとって非常に新しい)。ですから、表示されるフォームは、model.periods [1] .balanceのようなものになります(私が慣れているC#のコードに関して考えるならば)

どういうわけか、今の私の問題はこの約束のことですAPIは、データが返されたときにのみ起こるべき次のコードでは、アラートの後、打撃を受ける(アラートがある[オブジェクト、オブジェクト]とにかく... uuurgh)

actions: { 
    periodChange(period) { 
     var store = this.get('store'); 
     store.findRecord('dealperiod', period.value).then(function(data) { 
      var assetBalance = data.assetBalance; 
      alert(assetBalance); 
      this.set('assetBalance', assetBalance); 
     }); 

誰かがちょうどに私を指すことができれば適切な方向、スプーンフェイズを期待していない。

データが返された後にのみ何かを行う正しい方法はありますか(約束ですか?)そして、入力がモデルの子プロパティの場合はフォーム入力に名前を付けるようになりました。この場合、私は "期間"のコレクションを持っている "取引"モデルを持っており、選択されているごとに各期間のデータを編集したい)

答えて

1

私は確信していますが、 assetBalanceを取得します。

var assetBalance = data.get('assetBalance'); 
関連する問題