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

  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • ShayLoss

    ShayLoss

    5 Kasım 2009
  • TomOdellVEVO

    TomOdellVEVO

    29 Mayıs 2012