2013-05-22 6 views
5

사용자가 상호 작용할 때 최신 리소스 목록을 유지하려고합니다. AngularJS ngResource를 사용하여 나는 처음에 그것을 사용하여리스트를 얻었습니다. query 메소드. 각 리소스는 $remove (또는 $delete) 메서드를 사용합니다. 맞습니까? 그러나 해고되면 자원은 query에서 반환 된 목록에서 제거되지 않습니다.AngularJS ngResource delete 이벤트

이것은 많은 것을 요구하고 있습니다.하지만 거의 모든 것이 나를 위해 최선을 다할 것으로 기대하고있었습니다. 그것을 저장하십시오, 어떻게 이것을 달성 할 수 있습니다. 자원 자체가 어떤 종류의 이벤트를 방출합니까? 삭제 된 속성이 있습니까? $watch? 리소스가 $remove 인 것을 알면 어떻게 목록에서 분리 할 수 ​​있습니까?

감사합니다.

+0

: 나는이 같은 것 추측하고 당신을 위해

instance.$action([parameters], [success], [error]) 

을 당신이 말하는 코드는 어디에 있습니까? –

+0

그 자체로는 이것을 처리하지 않는 것이 참으로 유감입니다. 그것은 겉보기에 명백한 일처럼 보일 것입니다. –

답변

6

Arraysplice 메서드를 사용하여이를 제거해야합니다 ($index은 ng-repeat의 암시 적 인덱스 임).

$scope.removeItem = function (index) { 
    $scope.items[index].$delete(); 
    $scope.items.splice(index, 1); 
} 

그리고 당신의 HTML에

<a ng-click="removeItem($index)">remove me</a> 
+0

이것은 대부분의 경우 작동하지만 서버 측에서 어떤 종류의 오류가 발생하면 어떻게됩니까? UI가 더 이상 올바른 상태를 반영하지 않습니다. – testing123

+0

그러면 콜백으로 전달할 수 있습니다. :) – Ven

2

그냥 성공 콜백 함수 사용

myResource.$delete([parameters], function() { 
    //delete was successful 
});