我正在尝试将我的Ember.js应用更新为Ember Data 1.0 Beta。我所拥有的是使用Ember Data 0.14。使用新版本,我需要为模型手动设置typeKey
,以便REST请求具有正确的路径。
我有简单的模型:
App.Product = DS.Model.extend
name: DS.attr('string')
在Ember Data 1.0 Beta中,我需要添加它以使其正常工作:
App.Product.typeKey ='product'
其他buildURL
方法始终通过undefined
[buildURL(type.typeKey, …)
]。
答案 0 :(得分:2)
昨天我遇到了一个非常类似的问题。出于某种原因,我能够为我的一个模型获得typeKey
,而不是其他三个模型。应用程序没有完全加载或准备好,这似乎是某种问题。页面加载后,我能够得到所有四个模型的typeKey
就好了。看看你是否能得到相同的结果。我只需要重新排列一些代码以使其正常工作。希望你也可以这样做。
答案 1 :(得分:1)
问题是由于在商店查找器方法中使用模型类而不是其字符串名称引起的:
应该是@store.find('product')
而不是@store.find(App.Product)
。
答案 2 :(得分:0)
需要注意的另一件事是DS.Store
实现modelFor()
方法,您可以使用该方法根据给定的字符串键获取Model
类。
例如:store.modelFor('post');
我认为使用该方法是值得的,因为它也会进行其他初始化。