Как я могу откатить принадлежащий модели
DEBUG: ------------------------------- ember-1.9.1.js:3935
DEBUG: Ember : 1.9.1 ember-1.9.1.js:3935
DEBUG: Ember Data : <%= versionStamp %> ember-1.9.1.js:3935
DEBUG: Handlebars : 2.0.0 ember-1.9.1.js:3935
DEBUG: jQuery : 1.11.1 ember-1.9.1.js:3935
DEBUG: -------------------------------
Я должен моделировать так же, как это:
Hwv.Car = DS.Model.extend({
number: DS.attr('string'),
owner: DS.belongsTo('user')
});
Hwv.User = DS.Model.extend({
name: DS.attr('string'),
phone: DS.attr('string'),
email: DS.attr('string')
});
тогда я использую выбор входа в шаблоне:
{{#if isEditing}}
{{view "select" id = "owner" class="form-control"
content=owners
optionLabelPath="content.name"
optionValuePath="content.id"
prompt="--please select a user--"
selection=selectedOwner
}}
<span class="glyphicon form-control-feedback"></span>
{{else}}
<p class="form-control-static">{{owner.name}}</p>
{{/if}}
и мой контроллер такой:
Hwv.CarController = Ember.ObjectController.extend({
needs:["application","session"],
isEditing:false,
isNew:false,
owners:function(){
var model = this.get('model'),
store = this.store;
return store.filter('user', function (user) {
return true;
});
}.property(),
selectedOwner:function(k,v){
var model = this.get('model');
if(!model){
return;
}
if (v === undefined) {
return model.get("owner");
} else {
debugger;
model.set('owner', v);
debugger;
return v;
}
}.property("model.owner"),
selectedOwnerDidChange: function() {
debugger;
//if i remove this row ,the car model can't be dirty when the owner of the car is changed by the select input.
this.get('model').send('becomeDirty');
}.observes('selectedOwner'),
actions:{
cancel:function(){
//this row will work when i change the car number only and then click the cancel button
//but when i change the car owner by the select input,the car model can't rollback successfully.
this.get("model").rollback();
}
}
});
Кажется, проблема заключается в том, что данные ember не могут успешно выполнить откат модели ownTo, и даже они не могут пометить грязное свойство модели именно тогда, когда свойство ownTo изменилось.
Мой вопрос: как я могу написать код, чтобы исправить проблему отката с владельцем автомобиля, принадлежащим модели, как и выше.
0 ответов
Я искал проблему на нашем сайте, но не могу найти решение, одно из которых, например, " Как откатить изменения отношений в EmberData", в этом случае имеет отношение hasMany, но в моем случае есть только принадлежит.
Поздно на вечеринку, но здесь мы идем:
Я создал аддон, который решает эту проблему. Просто позвони rollbackAttributes()
и это откатит ваши отношения тоже