ドロップダウン (「期間」のリスト) であるコンポーネントがあり、この選択が変更されたときに、その期間のデータを編集できるように、その下のフォームにフォームを入力する必要があります。
メイン テンプレートはコンポーネントを適切にレンダリングします (コード自体が説明してくれるといいのですが)。
{{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>
モデルには期間プロパティがあり、期間には「バランス」プロパティがあるため、ここで私はそれを緩め始めています(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);
});
誰かがスプーンで与えられることを期待せずに、私を正しい方向に向けることができれば。
私の質問は次のようになると思います:データが返された後にのみ何かを行う正しい方法は何ですか(約束しますか?)そして次に、入力がモデルの子プロパティ用である場合にフォーム入力に名前を付ける(この場合のように「期間」のコレクションを持つ「取引」モデルがあり、選択されている各期間のデータを編集したい)