Muhtemelen gerçekten aptalca bir şey özlüyorum, (Ember newbie) ama tamamen yeni bir dizi ayarlamak dışında, Ember Controller'ın yönetimi altındaki bir dizinin nasıl değiştirileceğini anlayamıyorum. Örneğin,Öğeleri bir Ember Controller tarafından yönetilen bir dizide nasıl değiştirebilirim?
. Kontrol cihazımda aşağıdaki test fonksiyonum var. Kullanıcı tıkladığında, kontrol edilen dizinin her bir elemanını (veya tek bir eleman olabilir) yeni bir değerle değiştirmek istiyorum.
Sana Ember bildiği değişiklik yapmak için "set" geçmesi zannediyorsunuz anlıyoruz, bu yüzden bu işe düşündüm:
clickHandler:function(e){
var temp = this.get("itemList").copy(); // copy it
for (var i = 0; i < temp.length; i++) {
temp[i].desc = "CANCELLED"; // change it
}
this.set('itemList', temp); // put it back
}
Ben dizinin bir kopyası, bunu değiştirmek yapmak, ve sonra geri ayarlayın. Ama bir şekilde Ember, Ember.Set'i kullanmam gerektiğini söyleyerek temp [i] .desc'in içeriğini değiştirdiğim 4. satırdan şikayet ediyor. "Çevrimdışı" kopyasını değiştirebileceğimi ve sonra tekrar ayarlayabileceğimi düşündüm, ama hayır ve neden olduğunu anlayamıyorum. Vardiya/unshift/pop gibi diğer dizi işlemleri işe yarıyor gibi görünüyor.
Teşekkür ederiz. Yığın Taşması konusunda eğitmek için zaman ayırdığınız çocuklar harika. Ne yazık ki, bu çözümlerden hiçbiri benim için çalışmıyor. Her iki durumda da hatayı alıyorum "Uncaught TypeError: Nesne #
Öneriniz tamamen anlamlıdır, sadece nedenini anlayamıyorum işe yaramıyor. Bir ArrayController ve satır: this.get ("content") kullanırsam setEach ('desc', "CANCELED"); sonra tüm şablon öğelerimin "İPTAL EDİLDİ" durumuna getirildiğini görüyorum, bu yüzden her şeyin çalıştığını biliyorum, ancak "forEach" kullanırsam, geri döndüğüm "öğe" bir "çağrı" çağrısını kabul etmeyecektir. :^( –
Çoktan 3 ay önce insanlar beni işe koyduğumda çok mutlu olmuştum. Örneğini bir kemanın içine koyabilir misin? Birkaç dakika içinde basit bir sanal şablona bağlantı göndereceğim. – mavilein