1

ドロップダウン (「期間」のリスト) であるコンポーネントがあり、この選択が変更されたときに、その期間のデータを編集できるように、その下のフォームにフォームを入力する必要があります。

メイン テンプレートはコンポーネントを適切にレンダリングします (コード自体が説明してくれるといいのですが)。

{{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);
        }); 

誰かがスプーンで与えられることを期待せずに、私を正しい方向に向けることができれば。

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

4

1 に答える 1

1

よくわかりませんが、ember get メソッドを試して、assetBalance を取得できますか。

var assetBalance = data.get('assetBalance');
于 2016-06-27T16:58:51.373 に答える