SORU
10 Ocak 2013, PERŞEMBE


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!

enter image description here

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:

  1. Endeks için gittiği HTML olarak doğru bir yaklaşım

  2. 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
10 Ocak 2013, PERŞEMBE


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);
  });
};

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NextKsa

    NextKsa

    7 EKİM 2009
  • Orson Wang

    Orson Wang

    28 EKİM 2006
  • Pocketnow

    Pocketnow

    14 EKİM 2007