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

dou*_*ald 5 templates ember.js

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

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

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

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

    {{#each data as |result|}}
        <tr>
            <td>{{result.prop1}}</td>
            <td>{{result.prop2}}</td>
        </tr>
    {{/each}}
Run Code Online (Sandbox Code Playgroud)

我正在将属性传递给我的组件,如下所示:

        <div id="tableContainer">
            {{result-table data=model.myData}}  
        </div>
Run Code Online (Sandbox Code Playgroud)

但由于某些原因模板结合正确的行数,但不正确的访问prop1和prop2类的位(所以我只得到20个左右的空白表行)

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

<client@model:table-datum::ember574:1>
Run Code Online (Sandbox Code Playgroud)

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

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

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

在此输入图像描述

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

在此输入图像描述

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

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

小智 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);
}
Run Code Online (Sandbox Code Playgroud)

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