2015-01-06 2 views
0

모든,Appcelerator REST 복잡한 사용자 정의 개체 업데이트

TL : 배열과 DR

  • Appcelerator 클라우드 서비스
  • REST
  • 사용자 정의 개체
  • 원자 $ INC를 사용하여 배열에
  • 업데이트 속성 증분 연산자

내역 :

저는 AngularJS를 사용하여 REST를 사용하여 Appcelerator Cloud Services에 액세스하고 있습니다. 복잡 한 사용자 정의 개체가 있습니다 (아래 Gist 링크 참조). 내 사용자 정의 모음에는 이벤트 당 하나의 개체가 포함됩니다. 각 이벤트에는 팀이 있고 각 팀에는 참가자가 있습니다. 각 팀과 참가자는 이벤트 부문에서 경쟁하고 청중은 팀 및 참가자 성과에 대해 투표합니다. 팀 및 참가자 점수를 업데이트하고 싶지만 점수를 업데이트하려면 필드 값을 설정하는 방법을 알 수 없습니다.

이 문제와 관련된 모든 파일을 요점으로 만들었습니다. 누구든지 도움을 주시면 감사하겠습니다.

답변

0

나는 포기하고 점수 객체를 평면 문서로 변경했습니다. 이제 이벤트/팀/세그먼트 또는 이벤트/참가자/세그먼트별로 점수 문서가 있습니다. 이렇게하면 점수 문서에 해시 나 배열이 없어 쉽게 점수 속성을 업데이트 할 수 있습니다.

0

Demo

전체 배열 당신은 '도착'라고하자;

var arr= {....}; 

위에서 세 번째 키에있는 세그먼트를 처리해 보겠습니다.

<table> 
     <tr ng-repeat="segment in arr[0].segments"> 
      <td ng-bind="segment.name"></td> 
      <td> 
       <input type="text" ng-model="segment.name"> 
      </td> 
      <td ng-bind="segment.score"></td> 
      <td style='cursor:pointer;' ng-click="segment.score = segment.score+1">Add Score</td> 
     </tr> 
    </table> 

을 그리고 컨트롤러는 무언가 같이 될 것이다 : : 그런 다음 HTML에서,이 같은 것을 보일 것이다 그래서 문자열의 배열처럼 생각

var TodoCtrl = function ($scope) { 
    $scope.arr = arr; 
} 

그것은 개체의 단지 배열의 또는 숫자지만 속성이 있습니다. 예를 들어, 두 번째 배열에 모든 참가자를 출력하려면 다음과 같이하십시오.

arr[1].contestants.forEach(function(element, index, object){ 
    console.log(element.id, element.name); // name would start with Gene Collier 
    element.segments.forEach(function(_el){ 
      console.log('name', _el.name, 'score', _el.score); 
    }); 
} 

이 도움이 되었기를 바랍니다.

+0

답장을 보내 주셔서 감사합니다. 인터페이스 부분을 아래로 내 데이터가 내 컨트롤러에 다시 오도록했습니다. 필요한 데이터를 분리 할 수있었습니다. Appcelerator 클라우드 서비스의 점수를 성공적으로 업데이트하기 위해 올바른 형식으로 얻을 수 없습니다. 내가 찾은 모든 예제는 최상위 점수 속성을 가져 와서 증분하는 방법을 보여줍니다. 중첩 된 속성을 가져 와서 늘리는 방법을 알아낼 수 없습니다. – jaxmeier

+0

HTML에서 ng-repeat를 사용한 것과 마찬가지로 ng-repeat를 중첩 할 수 있으며 각 값에 대해 HTML을 통해 수정할 수 있습니다.

{{c.name}}
tsuz

관련 문제