Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Can';t使用“t”的荷载关系;获得;余烬3.2_Ember.js_Ember Data - Fatal编程技术网

Ember.js Can';t使用“t”的荷载关系;获得;余烬3.2

Ember.js Can';t使用“t”的荷载关系;获得;余烬3.2,ember.js,ember-data,Ember.js,Ember Data,我正在尝试加载一个我知道以前从未加载过的关系,但它似乎从未为此调用我的API 我的设置是: // routes/application.js export default Route.extend({ model() { return this.get('store').findRecord('post', 1, {include: 'user'}); } }); // routes/comments.js export default Route.extend

我正在尝试加载一个我知道以前从未加载过的关系,但它似乎从未为此调用我的API

我的设置是:

// routes/application.js
export default Route.extend({
    model() {
        return this.get('store').findRecord('post', 1, {include: 'user'});
    }
});

// routes/comments.js
export default Route.extend({
    model() {
        let post = this.modelFor('application');
        return post.get('user').get('actionHistory');
    }
});
用户
actionHistory
以前没有加载过,所以我希望服务器请求获取它,但从来没有这样做过<代码>用户可用

// models/user.js
export default DS.Model.extend({
    actionHistory: DS.hasMany('action-history'),
    ...
});

// models/action-history.js
export default DS.Model.extend({
    user: DS.belongsTo('user'),
    ...
});
我已经尝试了很多方法来确保它被加载,
post.load('user.actionHistory')
post.get('user').reload({include:'action history'})
,但没有任何效果


我的设置是否有问题,或者我试图获取关系的方式是否有问题?

正如Gaurav在评论中提到的那样,余烬数据
findRecord
函数将返回一个需要首先解决的承诺。解决问题后,您应该能够获得用户。例如,以下内容将返回一个promise作为您的模型,该模型将解析为用户操作历史记录

// routes/comments.js
export default Route.extend({
    model() {
        return this.modelFor('application').then(p => p.get('user.actionHistory'));
    }
});
请注意,您的comments控制器/模板将不会收到来自模型挂钩的承诺,因为ember将等待它首先得到解决


我记得,在最近的版本中,ember数据本身并不加载关系。我认为像
这样的返回this.store.findRecord('action-history',post.get('user')。get('actionHistory.id');
可能在您的case@GennadyDogaev是的,我只是做了一个findAll()对于操作历史,让它成为我的路由的模型,但我现在有点难过,我可以从一个路由加载一个关系,并将它传播到余烬存储,如果我需要它,而不需要从服务器获取:(你能展示你是如何加载用户的吗?你提供了相关链接吗?Is
post.get('user'))
实际返回的是用户模型的有效实例吗?您是否可以包含获取用户返回的有效负载?您是否使用JSON API?如果是,您是否使用?我假设这不是原因,否则您不会期望任何请求,不是吗?