2014-06-19 2 views
0

를 만들기 위해 $ 자원 데이터를 사용하여 : 위의 코드는 다음 서버에서 CreditCard의 배열을 얻을 수있는 GET 요청을 사용하고각 문서에서 빠른 API 호출

var cards = CreditCard.query(function() { 
     // GET: /user/123/card 
     // server returns: [ {id:456, number:'1234', name:'Smith'} ]; 

     var card = cards[0]; 
     // each item is an instance of CreditCard 
     expect(card instanceof CreditCard).toEqual(true); 
     card.name = "J. Smith"; 
     // non GET methods are mapped onto the instances 
     card.$save(); 
     // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'} 
     // server returns: {id:456, number:'1234', name: 'J. Smith'}; 

     // our custom method is mapped as well. 
     card.$charge({amount:9.99}); 
     // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'} 
    }); 

$save() 또는 같은 $ 자원 클래스의 방법을 사용 $delete()을 사용하면 API 호출을 자동으로 서버에 다시 보낼 수 있습니다. 그러나, 나는 두 가지 문제

문제 1

cards 변수가 서버에서 배열을 어떻게 든 각 card in cards$resource처럼 취급 및 API 호출을 위의 방법을 사용할 수 있습니다 기대로 실행하고 있습니다. 그러나 우리의 API 응답은 형식의 항상 :

{ 
    success: true, 
    error: null, 
    status: 1, 
    result: [] // THIS IS THE ACTUAL RESULT 
} 

경우 결과는 실제 데이터, 또는이 케이스 cards 배열. card.$save()

문제 같은 것을 실행하는 경우에 가능하다 (그리고 어쩌면이 이미 자동으로 지원됩니다) 따라서, 우리의 API 응답을 사용하여 동일한 코드를 실행하는 2

내가 궁금 올바른 데이터를 게시 할 것 호출 후에 생성 된 객체와 똑같이 처리 된 ng-repeat을 사용하여 DOM에 바인딩 된 객체를 가져야합니다.

예를 들어, 동일한 CreditCards.query() API 호출을 사용하여 카드 배열을 가져온 다음 컨트롤러의 $scope.cards 변수로 설정한다고 가정 해 보겠습니다. 그럼 모든 카드를 표시 내 DOM에 ng-repeat="card in cards" 있습니다. DOM을 각 card에 나는 또한 요청

그래서 몸으로 특정 카드를 사용하여 서버에 삭제 요청을 $scope.cards 배열 에서 해당 카드를 삭제할 것 ng-click="deleteCard(card)"을 첨부 할뿐만 아니라 보내려 deleteCard() 기능은 잠재적으로 같을 것이다 :

$scope.deleteCard = function(card) { 

    // REMOVE card from the local array 
    var index = $scope.cards.indexOf(card); 
    if (index > -1) { 
    array.splice(index, 1); 
    } 

    // REMOVE card from the SERVER 
    card.$delete() // Will this work? 

} 

우리에게 사용할 수있는이 기능인가? 내 생각 엔이

답변

관련 문제