【发布时间】:2013-11-20 15:48:15
【问题描述】:
我知道有一个问题叫:Ember data: what is difference between find and findById?。但是,如果我错了,请纠正,但我认为它与旧版本的 Ember 数据有关,因为我在 embet-data doc 中找不到此方法。
我试图在我的目录中插入一个新类别。这行不通:
newRecord: function() {
catalog = this.store.find('catalog', 1);
record = this.store.createRecord( 'category', {category_name_fr_sh: 'Nouvelle categorie'});
catalog.get('catalog_categories_ids').pushObject(record);
this.set('content', record);
},
但这项工作:
newRecord: function() {
catalog = this.store.getById('catalog', 1);
record = this.store.createRecord( 'category', {category_name_fr_sh: 'Nouvelle categorie'});
catalog.get('catalog_categories_ids').pushObject(record);
this.set('content', record);
},
医生说
在不触发提取的情况下按给定类型和 ID 获取记录。 如果记录可用,此方法将同步返回记录。否则,它将返回 null。
我真的不明白为什么“触发提取”不起作用。我坚持 find() 首先查看它是否在存储缓存中,只有在没有找到时才获取。有人能启发我吗?
【问题讨论】:
-
对不起,我没有仔细阅读问题:-(我删除了我的anwser
-
你的模型是如何定义的?你能提供一个 JsFiddle 或类似的吗?
-
@Edu 当然,我现在没有时间,但是我下班后会发布一个。感谢您的帮助
-
当你说“不会工作”时,你是什么意思?你的意思是你在某个地方有另一个没有获得新类别的 catalog-id-1 实例?如果是这样,您需要使用该实例。
getById正在返回对已获取记录的引用(如果存在);find为您提供了该对象的新“镜像”,未连接到现有对象。 -
@MichaelJohnston 当我尝试访问属性时,我抛出了一个错误,并且我的目录。它是“未定义的”。
标签: javascript ember.js ember-data