对于我在Ember-Data中的Tag模型,我的商店中有4条记录:
标签:
id tag_name
1 Writing
2 Reading-Comprehension
3 Biology
4 Chemistry
在我的代码中,我有一个tag_names数组,我想得到一个相应的标记ID数组。我有两个问题:
我的服务器正在被查询,即使我的商店里有这些标签。当我调用store.find('tag',{tag_name:tag_name})时,我没想到需要调用服务器。以下是我用来尝试创建ID数组的所有代码。
var self = this;
var tagsArray = ["Writing", "Reading-Comprehension", "Chemistry"];
var tagIdArr = []
tagsArray.forEach(function(tag_name) {
return self.store.find('tag', { tag_name: tag_name }).then(function(tag) {
tagIdArr.pushObject(tag.get('content').get('0').get('id'));
})
})
return tagIdArr;
当我在console.log中时,上面代码的输出给了我一个长度为0的空数组对象。单击空数组旁边的插入符号显示三个具有正确数据的键值对。但阵列是空的。我确信这种行为有一个简单的解释,但我不确定为什么会这样。我在其他地方成功地使用了类似上面的代码。
答案 0 :(得分:2)
查找命中服务器,但查看不会。
usertype
请参阅:http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_reorganized-find-methods