ember 中 record.save() 的自定义路由
Custom route for record.save() in ember
在 ember 中,我有一个名为 "Post" 的模型。
如果我执行
record.save()
在创建 post 时,默认情况下它 post 发送到 Rails(后端)中我的 /post
url。这适用于我的情况。但是为了将来使用,我如何指定自定义路由?假设我想 post 这个模型到我的后端到一条名为
的路由
"/post/save"
如何让ember中的record.save()
走这条路?
ember 中的 Adapters 管理如何 模型与远程数据通信。如果您需要超出 ember 约定,您可以为您的模型创建一个自定义适配器,将操作指向不同的地方。
ember generate adapter model-name
在您的情况下,您希望在创建 post 时调用 /post/save
而不是 /post
。您将重载方法 urlForCreateRecord
:
urlForCreateRecord(modelName, snapshot) {
return '/post/save';
}
每个 url 操作(创建、更新、新建、查找、查询)都可以调整以适合您的后端。
您可以在 post 型号的适配器中执行此操作。
鉴于您的情况,您需要添加:
urlForCreateRecord () {
return this._super(...arguments) + '/save';
}
只有当 save
方法正在创建记录 (POST) 时才会使用 url,当 save
ing 已经存在的记录 (PATCH) 时,您应该使用 urlForUpdateRecord
在 ember 中,我有一个名为 "Post" 的模型。 如果我执行
record.save()
在创建 post 时,默认情况下它 post 发送到 Rails(后端)中我的 /post
url。这适用于我的情况。但是为了将来使用,我如何指定自定义路由?假设我想 post 这个模型到我的后端到一条名为
"/post/save"
如何让ember中的record.save()
走这条路?
Adapters 管理如何 模型与远程数据通信。如果您需要超出 ember 约定,您可以为您的模型创建一个自定义适配器,将操作指向不同的地方。
ember generate adapter model-name
在您的情况下,您希望在创建 post 时调用 /post/save
而不是 /post
。您将重载方法 urlForCreateRecord
:
urlForCreateRecord(modelName, snapshot) {
return '/post/save';
}
每个 url 操作(创建、更新、新建、查找、查询)都可以调整以适合您的后端。
您可以在 post 型号的适配器中执行此操作。
鉴于您的情况,您需要添加:
urlForCreateRecord () {
return this._super(...arguments) + '/save';
}
只有当 save
方法正在创建记录 (POST) 时才会使用 url,当 save
ing 已经存在的记录 (PATCH) 时,您应该使用 urlForUpdateRecord