2
我已經使用自定義的一個模型變換像新記錄時:如何應用自定義轉換手動創建使用store.createRecord
App.Question = DS.Model.extend({
questionName: DS.attr('string'),
attributes: DS.attr('myCustomTransform')
});
現在我想創建一個問題記錄,如:
var newQuestion = store.createRecord('question', {"questionName":"abc", "attributes":{....}});
它創造了一個記錄,但它不自定義轉換適用於裝載記錄(或屬性)。任何想法如何在手動創建記錄時應用轉換?
感謝, 迪
* UPDATE:工作液*
我的模型看起來是這樣的:
AS.Question = DS.Model.extend({
questionName: DS.attr('string'),
answers: DS.hasMany('answer'),
childQuestions: DS.hasMany('question', {async:true})
});
的附加邏輯看起來是這樣的:
$.ajax({
url: "questions",
data: {"templateId": templateQuestionId, "parentQuestionId": someId},
dataType: "json",
type: "POST"
}).done(function (data) {
/*
data looks something like
{"questions":[
{"id":122,
"questionName":"some question name",
"attributes": {"pinned":false,"randomized":false},
"answers":[1,2],
"childQuestions":[]
}]
,"answers":[
{"id":1,"answerText":"some text"}
,{"id":2,"answerText":"some text"}
]}
*/
store.pushPayload('question', data);
var questionId = data.question.id;
store.find('question', questionId).then(function(question){
parent.get('childQuestions').pushObject(question);
});
self.send('toggleBody');
});
因此,有沒有辦法,我們可以申請轉變爲我們提供給餘燼JSON數據(可能數據不是從服務器,但手動提供)? –
不在創建過程中,ember數據假定您已完全控制該代碼,並可以按照您的需要操作它。忽視我之前對使用二傳手的咆哮,我錯過了你在做的事情。爲什麼你需要反序列化obj? – Kingpin2k
它還挺有關http://stackoverflow.com/questions/20549321/how-can-we-perform-rollback-on-transformed-data。我創建了一個基於模板的新問題記錄,但模板本身並不是問題模型的一部分。例如:我會使用POST請求/ question?template_id = 1創建一個新問題。該請求將在db中創建一個新問題,然後以適當的Ember格式返回json數據。我想利用這些數據並在客戶端添加一條記錄。當這樣的屬性數據似乎是普通的JSON對象,但不是反序列化Ember.Object –