调用数据存储的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
最奇怪的是,该函数可以正常工作,因为我可以看到使用ember检查器查询正确执行并返回正确的记录。我有一个索引路由调用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 :(得分:0)
我最近遇到了同样的问题。您的API返回的JSON有效内容很可能未正确格式化。请记住,findRecord()期望返回单个对象,而不是数组:
{"data": {}}
不
{"data": []}
仔细检查DevTools以查看您的API返回给客户端的内容 - 确保它不是数组。