Ember model.get()没有正确返回值或绑定到模板

时间:2016-07-07 13:19:21

标签: templates ember.js

我有一条路由通过RSVP哈希中的.store.query()方法填充模型属性:

model(params, transition) { 
    return Ember.RSVP.hash({
        myData: this.store.query('table-datum', parameters)
    });
}

这会返回一个承诺,并且似乎根据Ember检查器将数据存入我的商店,我看到正确的行数,并且它们都具有填充数据的属性。

然后我在主视图模板中有一个简单的组件模板,其中有一个each块来显示输出:

    {{#each data as |result|}}
        <tr>
            <td>{{result.prop1}}</td>
            <td>{{result.prop2}}</td>
        </tr>
    {{/each}}

我正在将属性传递给我的组件:

        <div id="tableContainer">
            {{result-table data=model.myData}}  
        </div>

但由于某种原因,模板绑定了正确的行数,但没有正确访问类的prop1prop2位(所以我只得到20个左右的空白表行)

如果我尝试在模板中输出{{result}},则看起来像这样:

<client@model:table-datum::ember574:1>

我很确定数据存在某处,因为我的模板似乎没有出于某种原因访问这些属性。

关于在哪里寻找这个的任何想法?

编辑:记录result对象看起来几乎是正确的,但不完全是:

enter image description here

扩展内部模型会显示一些数据,但也会说“空对象”对我来说似乎有点不对劲!

enter image description here

编辑:如果它有帮助我有一个控制器功能,它获得model.myData并对其进行操作,这给了我期望的结果:

getMax() {
    let max = _.max(this.get('model.myData'),'aField').aField;
    console.log(max); // logs 41 as I expect
    return max;
}

1 个答案:

答案 0 :(得分:0)

这是你在路线模型中做的事情吗?

model() {
    return Ember.RSVP.hash({
        myData: this.store.query('table-datum', parameters)
    }).then(function(results) { 
        return results; 
    }).catch(function(error) { 
        throw error;
    });
},
setupController(controller, model) {
    this._super(...arguments);
    Ember.set(controller, 'myData', model.myData);
}

然后在模板中我将访问myData。