在 Emberjs 中加载下拉列表变化的数据

Loading data on dropdown change in Emberjs

我有一个下拉列表组件(列表 "periods"),当此选择发生变化时,应使用表单填充其下方的表单,以便编辑该期间的数据。

主模板渲染组件很好(我希望代码能自我解释?)

{{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 很新)因为模型有句点 属性,而句点有 "balance" 属性。因此,显示的表单将类似于 model.periods[1].balance(如果您根据我习惯的 c# 代码来思考)

无论如何,我现在的问题是这个承诺的事情,似乎我的 api 在以下代码中的警报之后被击中,这应该只在数据返回时发生(警报是 [object,object] 无论如何...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);
        }); 

如果有人能给我指出正确的方向,而不是指望被灌食。

猜猜我的问题归结为:仅在返回数据后才做某事的正确方法是什么(承诺?)其次,如果输入是针对 child 属性 模型(在这种情况下,我有一个 "deal" 模型,它有一个 "periods" 的集合,我想在每个周期被选中时编辑数据)

我不确定,但你可以试试 ember 获取资产余额的方法吗?

var assetBalance = data.get('assetBalance');