0
我在我的Addon中创建一个表单,它将保存商店中的记录,并且还会通过post api调用发送一个JSON对象到一个rails后端。灰烬。为DS.Adapter自定义createRecord不会被触发
我的问题是,方法“createrecord”不会被我的适配器内的自定义覆盖。它基本上创建了记录,但通过使用默认的“createRecord”ember-data方法。
插件/适配器/ trade.js
import Ember from 'ember';
import ApplicationAdapter from '../adapters/application';
export default ApplicationAdapter.extend({
createRecord: function(store, type, snapshot, trade) {
debugger;
console.log('bla')
}
});
应用程序/适配器/ trade.js
export { default } from 'ember-p/adapters/trade';
插件/模型/ trade.js
import DS from 'ember-data';
export default DS.Model.extend({
offer: DS.belongsTo('offer', {async: true}),
firstName: DS.attr('string'),
lastName: DS.attr('string'),
streetName1: DS.attr('string'),
streetName2: DS.attr('string'),
city: DS.attr('string'),
state: DS.attr('string'),
zipcode: DS.attr('string'),
telephone: DS.attr('string'),
email: DS.attr('string')
});
插件/路由/ checkout.js
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
createTrade: function (trade) {
this.store.createRecord('trade',trade);
this.transitionTo('thanks');
},
}
});
应用程序/模板/ checkout.hbs
{{ 对地址 createTrade = “createTrade” }}
应用程序/模板/组件/对 - address.hbs
{{yield}}
<h1>Address form</h1>
<form {{action 'createTrade' value="target.value" on="submit"}}>
<div class="form-group">
{{input type="text" placeholder="First name" value=firstName}}
</div>
<br>
<div class="form-group">
{{input type="text" placeholder="Last name" value=lastName}}
</div>
<br>
<div class="form-group">
{{input type="text" placeholder="Street name 1" value=streetName1}}
</div>
<br>
<div class="form-group">
{{input type="text" placeholder="Street name 2" value=streetName2}}
</div>
<br>
<div class="form-group">
{{input type="text" placeholder="City" value=city}}
</div>
<br>
<div class="form-group">
{{input type="text" placeholder="State" value=state}}
</div>
<br>
<div class="form-group">
{{input type="text" placeholder="Zipcode"value=zipcode}}
</div>
<br>
<div class="form-group">
{{input type="text" placeholder="Telephone" value=telephone}}
</div>
<br>
<div class="form-group">
{{input type="submit" value="submit"}}
</div>
</form>
感谢您的回答勒克斯。你觉得我应该怎么做呢? 我的想法是,我需要一个适配器和一个序列化程序来使用api所接受的对象进行后期api调用。 也许createRecord不是我要找的。你怎么看? – Wesley
为什么不调用'.save()'? – Lux
太棒了!我现在到了适配器中的方法。谢谢! – Wesley