Для меня лично я бы не использовал 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.run'? Документы довольно сокращены. Http://emberjs.com/api/classes/Ember.run.html – hectorh30
@ hectorh30 Для API проверьте исходный код (https://github.com/ebryn/backburner.js/ блоб/ведущий/Библиотека/backburner.js # L141). Аргументы: '(target, method, args ...)'. Для понимания цикла запуска выйдите из [этого руководства] (https://github.com/ebryn/backburner.js/blob/master/lib/backburner.js#L141). – GJK
Вторые ссылки указывают на код. Руководство было бы очень полезно. Большое спасибо! – hectorh30