Basit bir Ember.ArrayController
(ember-data
(en yeni), ember rc6
ve bir stok REST denetleyicisiyle bir uygulamada kullanıyorum.deleteRecord, Model filtre uygulandığında ArrayController güncelleştirmiyor
Dizi denetleyicisinin oluşturduğu listedeki her öğenin yanında bulunan eylemleri siliyorum. Bir öğe silindiğinde, uygun REST API çağrısı yapılır ve veritabanından düzgün bir şekilde kaldırılır. Sunucu doğru 204
yanıtı ile yanıt verir.
İşte benim yönlendirici kurulum, ben bulmak filtreyi çıkarmak ve tüm kategorileri yüklerseniz bulmak filtresi
App.CategoriesIndexRoute = Ember.Route.extend({
setupController : function(controller, model) {
this._super(controller, model);
controller.set("content", App.Category.find({
"parent": null,
}));
}
});
uygulanmakta olan fark, her şey (öğe otomatik hemen sonra işlemeye listeden çıkarılır) çalışıyor. Bununla birlikte, filtreyi yalnızca bir üst bilgisi olmayan kategorileri görüntülemek için eklediğimde, bir öğe silindiğinde liste güncellenmez. Başka bir bölüme geçip geri dönersem, liste yeniden yüklenir ve kategori biter.
deleteCategory: function(category) {
var transaction = this.get("store").transaction();
transaction.add(category);
category.deleteRecord();
transaction.commit();
}
bu bir ember-data
veya emberjs
hata mı: İşte
ArrayController
yılında deleteCategory
yöntemdir? Eğer değilse, burada ne yapıyorum? Bir hata ise, bir öğeyi sildikten sonra ArrayController içeriklerini yeniden yüklemek için bir yol var mı? Alternatif olarak, kategoriyi ArrayController'dan manuel olarak kaldırabilir miyim?
GÜNCELLEME 1:
İşteBen öğelerin listesini görüntüleyen am nasıl:
category.one("didDelete", this, function() {
this.set("content", App.Category.find({
parent: parent_category
}));
});
GÜNCELLEME 2: Ben onun içeriğini ayarlayarak dizi kontrolörün içeriği güncellemesi zorlamak başardı
Şablonda:
{{#each category in controller.content }}
<tr>
<td><a {{ action "detailCategory" category }}>{{ category.name }}</a></td>
<td><a {{ action "deleteCategory" category }}>Delete</a></td>
</tr>
{{/each}}
Teşekkür ederiz!
İki not: Bunu başka tür filtrelerle test ettim ve model sorgusuna herhangi bir filtre uygulandığında başarısız olur. Sadece filtresiz çalışır, aksi halde liste güncellenmez. Ayrıca, silme tamamlandıktan sonra içeriğini ayarlayarak ArrayController'ın sorgusunu yeniden yüklemenin bir yolunu buldum. Bu şimdilik yapacak, ama bu kötü bir hack. –
Benzer bir sorun yaşıyorum. Bunu hiç çözdün mü? –
Sonunda, bu sorunu listede her bir öğenin yanında bulunan onay kutularını izledim. Her onay kutusu ilgili nesne üzerindeki bir özniteliğe bağlanmıştı ve listeye yüklenirken hatalı olayları tetikliyordu ve bu soruna neden oluyordu. Sorunu çözmek için onay kutularını ve onlarla ilgili olayları kaldırdım. Daha fazla ayrıntıya ihtiyacınız varsa, daha fazla kazacağım ve size bildireceğim. –