使用 RESTAdapter 的自定义 post-请求
Custom post-request with RESTAdapter
我的模型通过 Ember 的默认 RESTAdapter
.
与服务器一起工作
我刚刚在我的服务器上创建了一个自定义端点 /mail
,如果提供了名称、有效的电子邮件地址和文本,它会发送一封电子邮件。
如何让 Ember 发送自定义 post 请求?完全没有 Ember.ajax 有可能吗?
就我个人而言,我不会使用 Ember-Data 来处理这种情况;我通常只使用 Ember-Data 来处理我的持久化模型。如果您尝试将 Ember-Data 用于其他 AJAX 调用,它只会变得一团糟。请记住 Ember-Data 的工作是 管理您的持久数据 并且它 可以 做到这一点的一种方式是 AJAX 来电。这并不意味着任何需要 AJAX 调用的东西都应该用 Ember-Data.
来处理
我有同样的问题,我编写了一个实用程序模块,该模块具有适用于所有非模型 AJAX 的功能。这使得更换测试变得非常容易。这是一个小例子:
// utils/ajax.js
export function sendHelpEmail(comment) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '/api/contact_us',
contentType: 'application/json',
data: JSON.stringify({ comment }),
processData: false,
statusCode: {
200: () => Em.run(null, resolve),
500: () => Em.run(null, reject)
}
});
});
}
然后,我可以在我的控制器中做这样的事情:
import { sendHelpEmail} from '../utils/ajax.js';
export default Em.Controller.extend({
actions: {
sendEmail() {
sendHelpEmail(this.get('comment'));
}
}
});
我的模型通过 Ember 的默认 RESTAdapter
.
我刚刚在我的服务器上创建了一个自定义端点 /mail
,如果提供了名称、有效的电子邮件地址和文本,它会发送一封电子邮件。
如何让 Ember 发送自定义 post 请求?完全没有 Ember.ajax 有可能吗?
就我个人而言,我不会使用 Ember-Data 来处理这种情况;我通常只使用 Ember-Data 来处理我的持久化模型。如果您尝试将 Ember-Data 用于其他 AJAX 调用,它只会变得一团糟。请记住 Ember-Data 的工作是 管理您的持久数据 并且它 可以 做到这一点的一种方式是 AJAX 来电。这并不意味着任何需要 AJAX 调用的东西都应该用 Ember-Data.
来处理我有同样的问题,我编写了一个实用程序模块,该模块具有适用于所有非模型 AJAX 的功能。这使得更换测试变得非常容易。这是一个小例子:
// utils/ajax.js
export function sendHelpEmail(comment) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '/api/contact_us',
contentType: 'application/json',
data: JSON.stringify({ comment }),
processData: false,
statusCode: {
200: () => Em.run(null, resolve),
500: () => Em.run(null, reject)
}
});
});
}
然后,我可以在我的控制器中做这样的事情:
import { sendHelpEmail} from '../utils/ajax.js';
export default Em.Controller.extend({
actions: {
sendEmail() {
sendHelpEmail(this.get('comment'));
}
}
});