0
我有以下情形:createRecord未保存記錄的關係
創建多頁面表單中記錄routes/feedback.js
model() {
return this.get('store').createRecord('feedback');
},
2-孩子的路線返回兩種型號,問題是
1父路由非相關模型,返回動態路線中顯示的多個問題。而答案,創建回答在其網頁這些問題記錄
routes/feedback/question.js
model(params) {
return Ember.RSVP.hash({
question: this.get('store').findRecord('question', params.question_id),
answer: this.get('store').createRecord('answer')
})
},
3-回答有一個屬於關聯關係的反饋
models/answer.js
choice: DS.attr(), // receives data from question through a controller
feedback: DS.belongsTo()
models/feedback.js
submittedAt: DS.attr(),
answers: DS.hasMany()
4-數據從一個問題通過控制器
傳遞給一個答案記錄controllers/feedback/question.js
getChoice(choice) {
let answer = this.get('model.answer');
let questionId = this.get('model.question').get('id');
answer.setProperties({
choice: choice,
questionId: questionId,
// feedback: should relationship go here?
})
answer.save()
controllers/feedback.js
newModel: null,
actions: {
save(newModel) {
newModel.save()
}
}
那麼如果feeback沒有ID,那麼如何分配關係呢?
也可以保存答案,直到保存反饋的newModel爲止?其實,我試圖將getChoice動作冒泡給父控制器,但同樣存在空記錄問題。
是,回答現在知道關係p反饋。但是,當保存反饋時,它將答案顯示爲一個空陣列。 – Kareem
我試圖pushObject的答案,而不是保存,但錯誤是:「無法讀取未定義的屬性'modelName'」。 (答案)=> {answers.pushObject(answer.setProperties(...))})' – Kareem
在保存'feedback'之前,您可以將'answer'記錄更新爲反饋記錄使用pushObject。像'feedback.get('answers')。pushObject(答案)'..我以前沒有這樣做過。你可以閱讀https://guides.emberjs.com/v2.14.0/models/relationships/ – kumkanillam