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 来说非常新),因为模型有一个 period 属性,而 period 有一个“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);
        }); 

如果有人能指出我正确的方向,而不是指望被勺子喂。

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

4

1 回答 1

1

我不确定,但你可以尝试使用 ember get 方法来获取资产平衡。

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