2016-05-10 9 views
0

ich viele zu viel Beziehung mit diesen Modellen in Ember habe/FeuerbasisKann nicht Bezug viele zu viele in ember löschen/Feuerbasis

model/video 
export default Model.extend({ 
    ... 
    tags: hasMany('tag', {async: true}), 
    ... 
}); 

model/tag 

export default Model.extend({ 
    ... 
    videos: hasMany('video', {async: true}) 
}); 

In Controller eine Löschaktion

delete(tag) { 
    var videos = tag.get('videos'); 

    tag.destroyRecord().then(() =>{ 
    videos.map((video) => { 
     video.save(); 
    }); 
    }); 
} 

haben diese Aktion löscht einen Tag-Datensatz, aber keine Referenz im Video. Wenn das Tag gelöscht wird, wird var update auf leer gesetzt. Wie kann ich Referenz löschen?

Antwort

0

Sie müssen zuerst das Tag aus Ihren Videos entfernen und anschließend Ihr Tag löschen.

tag.get('videos').forEach(function(video) { 
    video.get('tags').removeObject(tag); 
    video.save(); 
}); 

tag.destroyRecord(); 
+0

Ihr Code funktioniert, aber wenn ein Tag viele Videos haben, löschen Sie nicht alle. Die Antwort in der Konsole ist: tag.js: 31Uncaught TypeError: Kann die Eigenschaft 'get' von undefined nicht lesen – infocito

+0

Wahrscheinlich einige Ihrer alten Daten, die sich in einem "korrupten" Zustand von Ihren vorherigen unvollständigen Löschungen befinden. Können Sie es mit 100% frischen Daten versuchen? –

+0

Haben Sie Ihr Problem gefunden? –