Kapsam bir Öğeyi kaldırmak için Nasıl AngularJS
Basit Yapılacaklar listesi, ama her madde için liste sayfasında bir silme düğmesi ile!

1. İlgili şablon html:
<tr ng-repeat="person in persons">
<td>{{person.name}} - # {{person.id}}</td>
<td>{{person.description}}</td>
<td nowrap=nowrap>
<a href="#!/edit"><i class="icon-edit"></i></a>
<button ng-click="delete(person)"><i class="icon-minus-sign"></i></button>
</td>
</tr>
2. İlgili kumanda yöntemi:
$scope.delete = function (person) {
API.DeletePerson({ id: person.id }, function (success) {
**// I NEED SOME CODE HERE TO PULL THE PERSON FROM MY SCOPE**
});
};
Denedim $scope.kişiler.Çek(kişi)
Denedim $scope.kişiler.Kaldır(kişi)
Ancak db silinmiş başarıyla, yapamam çekin bu maddeden kapsam ve ben çok bir yöntemi çağırmak için sunucu için veri istemci zaten var, ben sadece kaldırmak bu kişiden kişiye kapsamı.
Herhangi bir fikir?
Çözüm:
Endeks için gittiği HTML olarak doğru bir yaklaşım
Ancak, sadece açısal parametre (ıdx) değişen o kişiye ait bir örnek silme işlemi için sunucuya göndermek yaratmalıydım yeterli değil.
$scope.delete = function (idx) { var delPerson = $scope.persons[idx]; API.DeletePerson({ id: delPerson.id }, function (success) { $scope.persons.splice(idx, 1); }); };
Teşekkürler Çocuklar!
Açısal HARİKA ve zaten kontrol etmeyen herkesi teşvik ediyorum! };
CEVAP
Sorunu gerçekten Dizi yöntemleri ile Açısal ile, ama değil. Bir dizi özellikle bir öğeyi kaldırmak için doğru yolu Array.splice ile. Ng-repeat kullanarak da geçirilen bir dizi geçerli olduğu dizinin $index özel mülkiyet, erişim.
Çözüm aslında oldukça basittir:
Görünüm:
<a ng-click="delete($index)">Delete</a>
Denetleyici:
$scope.delete = function ( idx ) {
var person_to_delete = $scope.persons[idx];
API.DeletePerson({ id: person_to_delete.id }, function (success) {
$scope.persons.splice(idx, 1);
});
};

Nasıl kendi kapsamı ile özel bir yöner...
Nasıl bir JavaScript nesnesinin bir öz...
Nasıl jQuery UI iletişim kutusunda Kap...
Nasıl Python dizin tarafından bir list...
Nasıl tüm CSS dersleri jQuery kullanar...