2013-04-28 36 views
11

Tôi có vấn đề sau:Hủy bỏ mục từ danh sách sau khi lọc

tôi đã tạo ra một danh sách đó cho phép người dùng xóa một mục từ danh sách, như sau:

enter image description here

Khi người dùng nhấp vào biểu tượng thùng rác, mục được xóa bình thường. Vấn đề là khi người dùng sử dụng bộ lọc ở trên cùng.

enter image description here

Trong trường hợp đó, nếu tôi xóa số 6565 (index 4 trong danh sách ban đầu, 1 trong danh sách lọc), mục bị xóa trên chỉ số 1 trong danh sách ban đầu, kết quả trên xóa sổ đăng ký với số # 564456

Đây là cuộc gọi xóa tôi trên nhấp chuột:

$scope.deleteOwn = function (uuid) { 
    console.log(uuid); 
    var coupon = $scope.ownsCoupons[uuid]; 
    Coupon.delete({'id' : coupon.uuid}, function() { 
     $scope.ownsCoupons.splice(uuid, 1); 
    }); 
} 

Và đây là mẫu html của tôi:

<td><a href="" ><i class="icon-trash" ng-click="deleteOwn($index)"></i></a></td> 

Tôi cũng cố gắng sử dụng mã: $scope.ownsCoupons.splice(coupon, 1); mà không thành công.

Có ai biết cách khắc phục điều đó không?

Tôi đã được mã hóa bằng cách sử dụng tài liệu tham khảo sau đây: AngularJS How to remove an Item from scope

[EDIT]

Tôi đã tạo một Plunker này: http://plnkr.co/edit/Fhxp6uZyTJCY05CAQ7yA?p=preview

+2

Bạn không thể chuyển tiếp vào chỉ số, tài liệu tham khảo sử dụng đối tượng thay thế. Không chắc chắn tại sao mối nối không hiệu quả với bạn. Bạn cần chia sẻ nhiều mã hơn (lý tưởng nhất là sống với plunker) để mọi người có thể giúp bạn nhiều hơn. –

+0

Cảm ơn bạn đã trả lời! Tôi đã cập nhật câu hỏi với plunker. –

Trả lời

23

Như đã đề cập bởi @ pkozlowski.opensource, bạn không thể phụ thuộc vào $index để xác định một mục trong một mảng theo cách này. Tôi sẽ làm cho những thay đổi sau:

HTML:

<td><a ng-click="deleteWish(coupon)"><i class="icon-trash"></i></a></td> 

JS:

$scope.deleteWish = function (coupon) { 
    var index = $scope.coupons.indexOf(coupon); 
    if (index != -1) { 
     $scope.coupons.splice(index, 1); 
    } 
} 

Đây là một Plunker làm việc: http://plnkr.co/edit/b0b2cYGsM5wtw8hIrQB5?p=preview

+0

Cảm ơn rất nhiều! làm việc hoàn hảo! –

+0

Hey Brandon, bạn có thể giải thích những gì (chỉ số! = -1) chính xác đang làm? Cảm ơn. – LoveAndHappiness

+2

@LoveAndHappiness 'array.indexOf (mục)' trả về '-1' nếu không tìm thấy' mục' trong 'mảng'. Nếu 'index! = -1', thì mục đã được tìm thấy và có thể bị xóa. –

Các vấn đề liên quan