【发布时间】:2023-03-16 00:03:01
【问题描述】:
我正在尝试通过开发一个简单的 TODO 管理器应用程序来学习 Ember。
我正在为这个应用程序使用 ember-data 和 JSONAPISerializer 以及手卷 REST JSON API 后端。
我有以下代表任务的模型
app/model/task.js
export default DS.Model.extend({
title: DS.attr ('string'),
description: DS.attr ('string'),
isComplete: DS.attr ('boolean')
});
后端对应的 JSON 数据如下所示
{
"data": [{
"id": "1",
"type": "task",
"attributes": {
"title": "Complete Ember TODO manager application",
"description": "Build a simple Ember application for easily managing tasks",
"is-complete": "false"
}
}]
}
按照惯例,Ember 模型使用驼峰式名称,而 JSON API 后端使用破折号名称。
此应用程序的一个基本功能是按状态过滤任务,因此基本上可以看到正在进行或已完成或所有任务。
为了只获取正在进行的任务,我在相应路由的模型钩子中有以下查询
app/routes/tasks/ongoing.js
export default Ember.Route.extend({
model () {
return this.get('store').query('task', {
filter: {
isComplete: 'false'
}
});
}
});
所以当查询被发送到后端时,它是这样的
restjsonapi/tasks?filter[isComplete]=false
问题是后端期望“is-completed”而不理解“isComplete”。
有没有办法对 Ember 查询发出的 URL 进行模糊处理?
编辑(可能的解决方法):
我可能一直试图以错误的方式解决这个问题。我已将 JSON 数据更改为下划线而不是破折号,并解决了这个问题。
【问题讨论】:
标签: ember.js ember-data