2017-04-16 124 views
0

调用数据存储的findRecord()函数时出现奇怪的错误。下面是一个路由的内部函数调用,findRecord()返回错误,但记录正确返回

return this.get('store').findRecord('restaurant', params.restaurant_id); 

这里是我得到的错误,

vendor-6605726….js:10 Error while processing route: admin.restaurants.show e.getRecord is not a function TypeError: e.getRecord is not a function 

vendor-6605726….js:8 TypeError: e.getRecord is not a function 

最奇怪的是,该功能的工作,因为它应该,因为我可以看到使用烬检查该查询正确执行并返回正确的记录。我有一个调用findAll()的索引路由,它不会抛出任何错误。我正确地格式化我的JSON我相信,所以我不知道这可以做什么。

这里是JSON,

{"data":[{"type":"restaurants","id":1,"attributes":{"user_id":1,"name":"###########","address":"","phone":"##########","website":"##########","created_at":"2017-03-19 20:42:02","updated_at":"2017-03-19 20:42:02","description":"###########"}}]} 
+0

你只有在生产中才得到这个吗?因为在开发中你会得到一个更好的错误。 – Lux

回答

0

最近我有同样的问题。您的API返回的JSON有效负载很可能未正确格式化。请记住,findRecord()预计要返回一个对象,而不是一个数组:

{"data": {}} 

{"data": []} 

仔细检查DevTools看到你的API返回给客户端 - 确保它不数组。