我有以下情况:
创建多页窗体记录的父路由。
routes/feedback.js
model() {
return this.get('store').createRecord('feedback');
},2-返回两个模型的子路由,问题是在动态路径中返回多个问题的非相关模型。并在其页面中创建回答这些问题的记录。
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-答案有一个belongsTo关系反馈
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操作泡到父控制器,但同样的问题是null记录。
发布于 2017-07-24 03:07:56
您可以将feedback控制器注入到feedback/question中,并访问feedback模型并使用它。
feedback: Ember.inject.controller('feedback')和
let answer = this.get('model.answer');
let questionId = this.get('model.question').get('id');
let feedback = this.get('feedback').get('model');
answer.setProperties({
choice,
questionId,
feedback
})this.modelFor('feedback')。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'),
feedback: this.modelFor('feedback')
})
},和
let answer = this.get('model.answer');
let questionId = this.get('model.question').get('id');
let feedback = this.get('feedback');
answer.setProperties({
choice,
questionId,
feedback
})https://stackoverflow.com/questions/45262882
复制相似问题