だから、私はcreateCharacter
自分のコントローラーにメソッドを持っています。ほとんどの場合は機能しますが、 hasMany フィールドにデータを入力しようとするとforEach
、attempted to handle event 'loadedData'...
エラーが発生します。1 つは、データが飛行中であると述べていました。1つはコミットされていないと言っていた(私はやってみstore.commit()
ました.それはエラーが機内に切り替わったときです)。
これが問題の方法です。これらのレコードを編集したり、書き込みや読み取りを行ったりすることは他にすべきではありません (少なくとも私が知っていることは):
createCharacter: function(){
var character = App.Character.createRecord({
isEditing: true,
(...)
});
//Broken
App.Skill.find().forEach(function(item, index){
console.log(item.get('id'));
var newSkill = character.get('skills').createRecord({
rank: 0,
skill: item
});
//newSkill.save();
});
/*//Works (but doesn't make all the records I need)
character.get('skills').createRecord({
rank: 0,
skill: App.Skill.find(1)
});
*/
/*this part is because I can't figure out how to filter records from a hasMany property. Not entirely relevant to the aforementioned issue, but it has the same problem when it's uncommented.
var skills = character.get('skills');
var skillsList = App.Skill.find().getEach('id');
$.each(skillsList, function(index, value){
var rankID = skills.createRecord({
rank: 0,
skill: App.Skill.find(value),
});
switch(App.Skill.find(value).get('type')){
case 1:
character.get('generalSkills').addObject(rankID);
break;
case 2:
character.get('combatSkills').addObject(rankID);
break;
case 3:
character.get('knowledgeSkills').addObject(rankID);
break;
}
});*/
character.save();
}
私は何を間違っていますか?