Emberjs找到记录然后不等待决心

时间:2016-10-06 14:56:18

标签: ember.js promise ember-data ember-model

我有一个带有json api约定的findRecord方法,如下所示:

this.store.findRecord('book', 2).then((book) =>{
    console.log(book.get('name'));
});

控制台日志始终打印undefined,但名称值实际上正在发送。 book仅返回id,仅此而已。我和Ember一起测试过。$ ajax我得到了一切。模型结构也是正确的。

这是正常行为吗?这让我疯了好几个小时...... 感谢。

修改

工作片段:

Ember.$.getJSON('http://api.xxxxx.com/v1/books/' + id).then((book) => {
    console.log(book.get('name'));
});

EDIT2:

书籍型号:

import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { hasMany } from 'ember-data/relationships';

export default Model.extend({
    name: attr('string'),
    year: attr('number'),
    authors: hasMany('author')
});

1 个答案:

答案 0 :(得分:2)

  

如果传递 {reload:true} 或者apply.shouldReloadRecord的计算结果为true,那么一旦适配器返回数据,返回的promise就会解析,无论请求的记录是否已经存储在商店中:

this.store.findRecord('book', 2, {reload: true}).then((book) =>{
    console.log(book.get('name'));
});

参考:https://emberjs.com/api/ember-data/2.16/classes/DS.Store/methods/findRecord?anchor=findRecord