2016-03-26 16 views
2

ile iç içe bir yönergede kaldırma AngularJS'de yeniyim ve ng-repeat ile iç içe geçmiş bir özel yönergede belirli öğeyi kaldırma konusunda sorun yaşıyorum. İhtiyacım olarakAçısal. Ng-repeat

<button ng-click="mc.addCat()">Add Category</button> 

    <category ng-repeat="cat in mc.main.categories"> 
     <ul class="first-level"> 
      {{ $index +1 }}. Category 
      <br> 
      <input type="text" ng-model="mc.main.categories[$index].name"> 
      <button ng-click="cc.removeCat($index)">Del Category</button> 
      <button ng-click="cc.addItem()">Add Item</button> 

      <item ng-repeat="item in cc.cat.items track by item.id"> 
       <li class="second-level"> 
       {{ $parent.$index +1 }}.{{ $index +1 }} 
       <input type="text" ng-model="mc.main.categories[$parent.$index].items[item.id].name"> 
       <button ng-click="ic.removeItem(item)">del</button> 
       </li> 
      </item> 
     </ul> 
    </category> 

ekleme ve kategoriler çıkarmadan çalışır ve ebeveyn modeli güncellemelerini: Here is my plunker

Böyle iç içe yönergelerin yapıya sahiptir. Ancak, öğe alanına bir şey girip onu kaldırdığımda, bu öğe ana modelde kalır.

Sorunumu iç içe geçmiş kapsamlarda düşünüyorum, neyi yanlış yaptığımı söyleyebilir misiniz?

Teşekkürler! ben senin kodundan anladığım

cevap

1

.. çalışmıyor gibi görünüyor .... i plunker düzenledikten ve düzenle ....

`

$scope.$on('updateItems',function(event,index,pindex){ 
     console.log(index); 
     console.log(pindex); 
     var sti = ""+index+""; 
     delete vm.main.categories[pindex].items[sti]; 
}); 

`
çatallıBurada, flanşlı bağlantı plunker

+0

değiştiğini hatırlatır. İlginiz için teşekkürler! Ancak öğeleri eklerseniz, varsa sil, ardından yeni bir tane veya daha fazla ekleyin, ardından silmeye çalışın, ebeveyn modelindeki belirli öğeleri kaldırmaz. Hepsi bir ilk kategoride, daha fazla kategori eklenmedi. – polisvit

+0

çok teşekkürler! şimdi gerektiği gibi çalışıyor! – polisvit

+0

sonra cevabımı kabul et lütfen ... –

0

olduğunu senin item ekleniyor ve siz ana modeli güncelliyor bazı information giriyoruz yeni .... öğeleri silme iken

<input type="text" ng-model="mc.main.categories[$parent.$index].items[item.id].name"> 

, sildiğiniz kopya ve orijinal nesne.
$scope.$on('delItem', function(event, data){ 
    var items = vm.cat.items; 
    items.splice(items.indexOf(data), 1); 
}); 

Tüm kategorisinde aşağıdaki fonksiyon direktifinde silme fonksiyonu ana modeli güncellemek için bir yöntem çağırmalıdır

vm.cat = { 
    items: [{ 
     id: 0, 
     name: '' 
    }] 
}; 
vm.itemId = 0; 
vm.addItem = function() { 
    vm.itemId = vm.itemId + 1; 
    var item = { 
     id: vm.itemId, 
     name: '' 
    }; 
    vm.cat.items.push(item); 
}; 
$scope.$on('delItem', function(event, data) { 
    var items = vm.cat.items; 
    items.splice(items.indexOf(data), 1); 
}); 
+0

Evet, kategorilere öğeler eklemek ve değiştirmek için ebeveyn modeline ihtiyacım var. Öğe girdisi için bir şey yazıyorsam, ancak ekleme yöntemiyle öğeyi silersem üst modelin – polisvit