내 PlaylistController의 메소드에 제출하는 양식이 있습니다. 그 양식 제출에서, 나는 노래 기록을 만들고 그것을 저지른다. 무슨 일이 일어나고 있는지 모든 제출이 잘 작동한다는 것입니다. 새 레코드가 저장되고 커밋됩니다. App.Song.find()를 수행하여 내용이 업데이트되었는지 확인할 수 있습니다.Ember .get ('lastObject') 예상대로 작동하지 않습니다.
하지만 두 번째 제출이 잘못되었습니다. 제출물은 실제로 새로운 레코드로 커밋됩니다. 모델로 이동하면 새로운 값이 저장됩니다. 그러나, find()에 .get ('lastObject')를 사용하려고하면 첫 번째 제출을 얻습니다. 세 번째 제출은 두 번째 등을 반환합니다. 여기
내 코드입니다 :// create song in Song model first
new_song = App.Song.createRecord({
name: 'test name',
artist: 'test username',
soundcloud: '/tracks/'
});
new_song.get('store').commit();
//can't return the song ID when commiting, so need to manually find it
// find all songs, return last result
last_song = App.Song.find().get('lastObject');
console.log(last_song);
그리고 여기을 console.log() ('last_song'songs_array.get)입니다;
Object {id: "ember914", clientId: 30, type: function, data: Object, record: Class}
Object {id: "ember914", clientId: 30, type: function, data: Object, record: Class…}
Object {id: "ember1200", clientId: 31, type: function, data: Object, record: Class…}
Object {id: "ember1408", clientId: 32, type: function, data: Object, record: Class…}
그래서 내가 바로 레코드를 원한다면 플레이리스트 모델에 저장할 수 있습니다. 필자는 Run 루프와 Ember 데이터와 같은 더 깊은 주제를 시작하기 시작 했으므로 어떻게해야할지 확신이 들지 않았습니다. 오늘 조금 나중에 시도하고 작동 시키면 upvote가되지만이 모든 것이 의미가 있으며 작동해야합니다. 테디 감사합니다! – paulruescher
다른 모델에 ID를 추가 할 필요가 없습니다. 'playlist.get ('songs') .pushObject (new_song)'또는'Song'이 하나의'Playlist' :'new_song.set ('playlist', playlist)'에 속해있을 수 있습니다. 물론 모델 정의에서 관계를 정의해야합니다. –
테디, 사랑해. 그 마지막 코멘트는 계속 작동하고 잔뜩 쓸데없는 코드를 제거합니다. self.get ('content')를 사용하여 끝났다. get ('songs'). pushObject (new_song); (self는 var self = this이고, 내 PlaylistController 내에서. – paulruescher