无法从我的模型中找到记录
Ember版本:
DEBUG: -------------------------------
DEBUG: Ember : 1.0.0
DEBUG: Ember Data : 1.0.0-beta.2
DEBUG: Handlebars : 1.0.0 ember.js
DEBUG: jQuery : 1.9.1 ember.js
DEBUG: -------------------------------
型号:
App.Concert = DS.Model.extend({
tour_id: DS.attr(),
tickets: DS.attr()
});
查找
this.get("store").find("concert", {tour_id: 1}).then(function(result) {
console.log("--------------");
console.log(result.content.length);
console.log("--------------");
}, function(error) {
console.log("broken");
});
控制台:
-------------
length: 0
--------------
我无法通过属性找到我的模型中的记录。有人可以帮忙吗? 我知道有什么记录与tour_id:1存在
答案 0 :(得分:1)
Edu实际上是部分正确的(见下文),但是你没有找回任何记录的真正原因很可能是你的API返回的格式。 Ember Data对其预期的数据类型及其结构非常严格。如果您在API中查询tour_id
1
的音乐会,那么这就是响应的样子。请注意,根对象是复数模型名称,键是一组音乐会。
{
"concerts": [
{
"id": 1,
"tour_id": 1,
"name": "cool concert"
},
{
"id": 5,
"tour_id": 1,
"name": "awesome concert"
}
]
}
关于Edu的评论,如果您调用商店的find
方法,Ember Data不会执行常规查找。在幕后,调用findQuery
并返回DS.RecordArray
的实例。这不是一个常规的JavaScript数组,所以你需要尊重Ember的工作方式以及它如何处理数组。
我建议您阅读Ember指南中的DS.RecordArray
。此外,如果您打算使用Ember Data,那么您不应该害怕探索其来源。 Ember Data是一个雄心勃勃的项目,文档仍在进行中。因此,Ember Data的来源是您最重要的信息来源。
答案 1 :(得分:0)
尝试使用getter ......
console.log(result.get('length'));