私はドロップダウンリスト( "ピリオド"のリスト)を持ち、この選択が変更されたとき、その期間のデータを編集できるようにフォームの下にフォームを入力する必要があります。私は「どこ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);
});
誰かがちょうどに私を指すことができれば適切な方向、スプーンフェイズを期待していない。
データが返された後にのみ何かを行う正しい方法はありますか(約束ですか?)そして、入力がモデルの子プロパティの場合はフォーム入力に名前を付けるようになりました。この場合、私は "期間"のコレクションを持っている "取引"モデルを持っており、選択されているごとに各期間のデータを編集したい)