ajax调用中的Ember保存表单
我在编辑表单中加载了我所有的信息,当我点击保存按钮时,即使表单中没有任何更改,也会保存所有字段 我只想在对象中返回我在表单中修改的索引及其值。 我完全不知道如何用余烬做到这一点 这是我的密码:ajax调用中的Ember保存表单,ajax,ember.js,Ajax,Ember.js,我在编辑表单中加载了我所有的信息,当我点击保存按钮时,即使表单中没有任何更改,也会保存所有字段 我只想在对象中返回我在表单中修改的索引及其值。 我完全不知道如何用余烬做到这一点 这是我的密码: App.EnquiryUpdateController = Ember.ObjectController.extend({ id: null, isSaved: false, actions: { save: function() { var enquiry = this.get
App.EnquiryUpdateController = Ember.ObjectController.extend({
id: null,
isSaved: false,
actions: {
save: function() {
var enquiry = this.get('model');
console.log(enquiry);
var obj = JSON.parse(JSON.stringify(enquiry));
obj = this.cleanObject(obj);
$.ajax({
url: host + 'mdf/enquiry/' + enquiry.id,
type: 'POST',
accepts: 'application/json',
data: obj
});
this.transitionToRoute('enquiry', enquiry)
}
},
});
我的路线:
App.EnquiryUpdateRoute = Ember.Route.extend({
model: function() {
return this.modelFor('enquiry');
}
});
和我的模板:
<script type="text/x-handlebars" data-template-name="enquiry/update">
<div class="enquiry-update">
{{#if isSaved}}
<div class="saved">Enquiry updated successfully</div>
{{/if}}
<div>
<label>Customer Name</label>
{{input value=customerName}}
</div>
<div>
<label>Customer Email</label>
{{input value=customerEmail}}
</div>
<div>
<label>Customer Phone</label>
{{input value=customerPhone}}
</div>
<div>
<button {{action "save"}}>Save</button>
</div>
</div>
</script>
如果我更新了customerName,我只想将它放在我的对象{customerName:toto}中,而不是所有对象中
谢谢 好吧,您要实现的概念是脏属性检查。这意味着您需要保留原始数据的副本,然后将属性标记为脏属性,或者比较属性并仅发送不同的属性。您的意思是将原始数据保留为余烬数据,并将其与新数据进行比较?妈的,我想过了,但是的,这太可怕了。。你知道还有别的方法吗?Cleaner你在使用余烬数据吗?不是从我的服务器保存查询,我现在只使用它来保存用户的日志。姓名、账户名称等信息。。