加载Emberjs中下拉列表更改的数据

时间:2016-06-26 15:48:25

标签: ember.js promise ember-data ember-components

我有一个下拉列表(列出“句点”),当此选择更改时,应使用表单填充其下方的表单,以便可以编辑该时段的数据。

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

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

如果有人可以指出我正确的方向,不要期待被舀勺。

猜猜我的问题归结为:只有在返回数据之后才做正确的事情是什么(承诺?);其次,如果输入是针对模型的子属性的话,现在要命名表单输入(如这种情况我有一个“交易”模型,它有一个“期间”的集合,我想编辑每个期间的数据,因为它们被选中)

1 个答案:

答案 0 :(得分:1)

我不确定但是你可以尝试使用ember get方法来获得assetBalance。

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