我们最近从Ember切换到Ember CLI,我无法找到将模型与自定义适配器关联的正确约定.
历史 我们为模型创建了一个适配器,这些模型将文件上传作为其创建路径的一部分,以便可以将表单数据和二进制数据推送到后端api [rails]中的一个端点.适配器使用FormData对象将文件添加到请求.我选择仅将此适配器用于包含文件的模型,并且非文件上载模型使用应用程序适配器.所以我希望ember应用程序支持多个适配器.
自定义适配器: 在adapters/file-upload.js中
import DS from 'ember-data';
var FileUploadAdapter = DS.ActiveModelAdapter.extend({
ajaxOptions: function(url, type, hash) {
var self = this;
hash = hash || {};
hash.url = url;
hash.type = type;
hash.dataType = 'json';
hash.context = this;
//add post data to formdata object
if (hash.data && type != 'GET' && type !='DELETE') {
hash.processData = false;
hash.contentType = false;
var fd = new FormData();
var root = Object.keys(hash.data)[0];
for (var i = 0; i < Object.keys(hash.data[root]).length; …Run Code Online (Sandbox Code Playgroud)