有许多关系创建记录 - 为什么未定义
HasMany Relationship to Create Record - Why is undefined?
我有一个与"创建记录的 HasMany 关系"有关的问题,但我已经查看并尝试了已经在堆栈溢出的答案,但它们不起作用。问题是模型未定义。我结合了QuestionsController和TopicController。
这是主题的模型:
App.Topic = DS.Model.extend({
title: DS.attr('string'),
questions: DS.hasMany('Question', {async: true}),
});
App.Topic.FIXTURES = [
{
id: 1,
title: 'Early America',
questions: [1,2]
},
{
id: 2,
title: 'American Revolution',
},
{
id: 3,
title: 'Modern America',
}
];
这是主题控制器:
App.TopicsController = Ember.ArrayController.extend({
actions: {
createTopic: function () {
var Topic = this.store.createRecord('Topic', {
title: 'Untitled Topic'
});
/* Topic.get(questions.find(1)... */
Topic.save();
this.set('newTitle', '');
},
}
});
这是主题控制器:
App.TopicController = Ember.ObjectController.extend({
isEditing: false,
actions: {
editTopic: function () {
this.set('isEditing', true);
},
acceptChanges: function () {
this.set('isEditing', false);
},
removeTopic: function () {
var topic = this.get('model');
topic.deleteRecord();
topic.save();
},
createQuestion: function () {
var question = this.get('store').createRecord('Question', {
title: 'Untitled Question',
topic: this.get('model'),
});
question.save();
}
}
});
这是问题的模型:
App.Question = DS.Model.extend({
title: DS.attr('string'),
topic: DS.belongsTo('Topic', {async: true}),
});
App.Question.FIXTURES = [
{
id: 1,
title: 'What continent did Colombus find?',
topic: 1,
},
{
id: 2,
title: 'Other question',
},
];
这是问题控制器:
App.QuestionController = Ember.ObjectController.extend({
isEditing: false,
actions: {
editQuestion: function () {
this.set('isEditing', true);
},
acceptChanges: function () {
this.set('isEditing', false);
},
removeQuestion: function () {
console.log(this);
console.log("hello");
var question = this.get('model');
question.deleteRecord();
question.save();
}
}
});
这是存储所有文件的地方:https://github.com/Glorious-Game-Design-ASL/MapQuizGame/tree/master/quiz_creator
呼,这花了一段时间才弄清楚。我这里有一个[最小的,没有样式或花里胡哨的]工作示例:https://gist.github.com/polerc/8137422
总结:
基本上,TopicsController
和QuestionsController
的层次太多了。将TopicsController
合并到QuizController
中,并将QuestionsController
合并到TopicController
中。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 为什么localStorage[“..”]未定义,而localStorage.getItem(“..”)为null
- 解析-为什么user.getSessionToken()返回未定义的结果
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 为什么我会出现此错误"未捕获引用错误:未定义标题;
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- 有许多关系创建记录 - 为什么未定义
- 为什么“未定义”==未定义是不正确的
- Javascript 函数.可变结果.为什么未定义或没有 如果 else 语句函数
- 为什么“未定义等于假”返回假
- JavaScript 对象 - 为什么未定义的属性
- 为什么未定义此对象的属性?Javascript
- NodeJS express会话(为什么未定义?)
- 为什么未定义var检查器
- 为什么未定义会被添加到我的字符串中
- 为什么未定义process.stdin
- 为什么未定义的var不被添加到窗口对象JavaScript
- reduce方法创建新列表,为什么未定义
- 为什么未定义此函数日志记录(JavaScript关闭)