Ben*_*den 3 javascript ember.js ember-data
当相关数据以0-1关系序列化时,一切正常.
"lesson": {
"id": 1,
"title": "foo",
"user_completion": {
"id": 1,
"percent": 30
},
"is_available": true
}
Run Code Online (Sandbox Code Playgroud)
但是,当尚未创建相关模型时,Web服务将为该关系返回null.
"lesson": {
"id": 1,
"title": "foo",
"user_completion": null,
"is_available": false
}
Run Code Online (Sandbox Code Playgroud)
看来,当使用此数据实例化ember模型时,user_completion将成为PromiseObject.
在需要检查相关数据是否存在的情况下,我应该怎么做,如下例所示?
model.filter(function(item) {
return item.get('is_available') || item.get('user_completion') !== null;
});
Run Code Online (Sandbox Code Playgroud)
我真的只需要检查user_completion是否是PromiseObject?这看起来有点奇怪,我觉得我在其他地方犯了一个错误.
经过一番调查后发现,如果你的关系被定义为async,它总会返回一个promise,无论你是否内联关系.
更改
user_completion: DS.belongsTo('user_completion', {async: true})
Run Code Online (Sandbox Code Playgroud)
至
user_completion: DS.belongsTo('user_completion', {async: false})
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作; Ember回归null空旷的关系.
对于它的价值,它看起来async: true 可能成为未来的默认值.
| 归档时间: |
|
| 查看次数: |
1930 次 |
| 最近记录: |