我有一个下拉组件(列出“期间”),当此选择更改时,应使用表单填充其下方的表单,以便可以编辑该期间的数据。
主模板渲染组件就好了(我希望代码能解释自己?)
{{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);
});
如果有人能指出我正确的方向,而不是指望被勺子喂。
猜猜我的问题归结为:只有在返回数据后才做某事的正确方法是什么(承诺?)其次,如果输入是模型的子属性,现在命名表单输入(就像在这种情况下我有一个“交易”模型,它有一个“周期”的集合,我想在每个周期被选中时编辑数据)