2014-09-15 4 views
1

인텔 XDK 및 Parse.com을 사용하여 간단한 응용 프로그램을 백엔드 서비스로 만들려고합니다.Intel XDK listview sort

나는 this tutorial과 같은 목록보기를 만들었습니다.

내 앱의 listview는 맨 아래에 최신 항목을 표시합니다. 그 대신에 목록의 맨 위에있는 가장 최근의 항목 - 반대 방향으로 목록을 보여주고 싶습니다.

간단한 HTML5-JS 파일에서 Parse.com의 JavaScript에 대한 설명서에 설명 된대로 query.ascending("createdAt");을 사용합니다. Intel XDK로 어떻게 할 수 있습니까?

나는 모든 도움이되는 답변을 제공 할 것입니다.

편집 크리스 퍼킨스

에서 첫 번째 대답

후 나는 this answer에 따라 외부 웹 서비스로 인텔 XDK 내 Parse.com 데이터베이스를 통합 할 수 있었다.

그래서에서 -----/www /에서 XDK/서비스/서비스 methods.js, 내 서비스에 의해 호출 된 메소드의 일부는 다음과 같습니다

intel.xdk.services.iodocs_.New_Service = ((function (credentials) { 
    var exports = {}; 

    exports.ServiceObject = function(params) { 
    var url = 'https://api.parse.com/1/classes/ServiceObject'; 
    return $.ajax({ 
      url : url, 
      headers : { 
      'X-Parse-Application-Id' : credentials.apiKey, 
      'X-Parse-REST-API-Key' : credentials.apiSecret 
      } 
     }); 
    }; 

    return exports; 
}))(intel.xdk.services.credentials.New_Service,intel.xdk.services.iodocs_.helpers); 

내가 제대로 이해 한 경우 역순으로 표시하려는 배열은 내 서비스의 응답 본문에있는 "결과"의 값이며이 모든 것은 중괄호 {var exports = {};} 안에 있습니다. 나는 옳은가요?

답변

0

위의 제안을 시도했지만 목록이 작성되지 않았습니다.

솔루션은 데이터베이스가 응용 프로그램과 연결된 방식이 아닙니다.

목록이 템플릿에서 만들어지고 솔루션이 backbone.js 파일에 있음을 깨달았습니다. 그래서 저는 -----/www/js/backbone_support를 열었습니다.JS이

var myCollection = Backbone.Collection.extend({ 
     model: myModel, 
     comparator: function(item) { 
      return -item.get(''); 
     } 
    }); 

비슷한을 수행하여 개입하거나 곳이

$('#list').append(listItem.render().el); 같은과 선을 발견하고 .append().prepend()에 변경했습니다.

아무런 도움이되지 않았습니다. 하지만 결국 나는 내가 .reverse()을 삭제 코드

//non-destructive reverse 
var nd_reverse = function(arr){ return _.initial(arr, 0).reverse(); }; 

에서 그 라인을 발견하고이 일어났다. 이제 목록에는 내 Parse.com 데이터베이스의 최신 항목이 맨 위에 표시됩니다.

이것이 대괄호 솔루션인지 아니면 더 복잡한 문제에는 적합하지만 어떻게 든 도움이되기를 바랍니다.

1

이것은 아직 제공하지 않은 기능입니다. 우리는 사용자가 서비스 요청 데이터를 필터링, 변환 및 재정렬 할 수 있기를 매우 원합니다. 제안이나 아이디어가 있으면 알려주십시오. 지금 우리의 생각은 우리가 대회를 가질 것이라는 것입니다. 서비스의 이름이 intel.xdk.foo 인 경우 intel.xdk.foo.filter라는 이름의 모든 항목이 자동으로 호출되어 결과 데이터를 인수로 받아 수정 된 데이터를 반환 할 수 있습니다.

하지만 그건 아직 아닙니다. 잠시 동안 다음을 수행하십시오.

1 - XDK에서 툴바의 오른쪽 끝에있는 설정 기어를 클릭하십시오. 서비스 탭으로 이동하여 축소로 설정합니다.

2 - yourproject/www/xdk/services/service-methods.js를 엽니 다. 거기에 서비스 메소드에 의해 호출 된 메소드를 찾습니다. 아마도 다음과 같이 보일 것입니다 :

return $.ajax({ 
     url: url, 
     type: 'GET' 
    }); 

3 - 결과 체인을 사용하여 결과를 변경하십시오. 귀하의 경우에는,의 데이터가 배열이라고하자 우리는 (아마도 둘 다 나쁜 가정) 역 할 : 이해

return $.ajax({ 
     url: url, 
     type: 'GET' 
    }).then(function(data){ 
     return Array.prototype.reverse(data); 
    }); 

합니까를?

+0

내 대답을 볼 수 있습니까? 이것은 나의 해결책이었다. – GSav