我正在尝试为sails.js连接实现一个ember-cli(ember-data)。我已经安装了 ember-data-sails 并且有一个简单的模型并使用了socketAdapter ......
适配器/ application.js中
import SailsSocketAdapter from 'ember-data-sails/adapters/sails-socket';
export default SailsSocketAdapter.extend({
useCSRF: true,
coalesceFindRequests: true,
namespace: 'api/v1',
//defaultSerializer: '-rest',
});
示例模型:
RequestType.js
module.exports = {
attributes: {
name : { type: 'string' },
desc : { type: 'string' },
requestSubType : { type: 'hasMany' }
}
};
到目前为止,它主要是工作,我可以得到一个RequestTypes列表。但是,如果我尝试嵌套路线以显示/创建 hasMany 关系,那么我有一个问题。
请求子类型/新/ routes.js 此文件首先请求父模型 requestType ,然后创建新记录,在 belongsTo 属性中插入Parent。
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
var requestType = this.modelFor('requestTypes/view');
return requestType.get('requestSubTypes').createRecord({
requestType: requestType
});
}
});
请求类型/视图/ route.js 这个文件是我认为上面要求的模型。这里的问题是得到的params对象是:
{ requestType_id: 6 }
但如果将其传递给store.query调用,则不会返回任何内容。但是,如果我将params对象更改为:
{ id: 6 }
然后我确实看到了从帆api回来的记录。
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
console.log('RT: View Route MODEL', params);
var query = {};
if(params.requestType_id) {
query.id= params.requestType_id;
}
return this.store.query('requestType', query);
}
});
所以我的问题是我需要编辑什么来使主键定义匹配。这样Ember-data和Sails可以正确地相互通信?它是在某个地方的序列化程序,Sails API还是在每个模型调用中?
谢谢...对不起,如果上述内容没有任何意义! :)