문제

읽기 API에 액세스 권한을 제공하는 것은 없습니다.http://api.dojotoolkit.org/jsdoc/1.3.2/dojo.data.api.read

도움이 되었습니까?

해결책

모든 데이터 스토어의 와이어 데이터 형식은 완전히 매장 별입니다. 총 항목 수 (및 기타 메타 데이터)를 얻으려면 응답의 일부로 반환해야합니다. 이것이 서버 측 페이지 매김을하는 유일한 방법입니다.

내가 구현 한 모든 상점은 데이터가 포함될 것으로 기대합니다. totalCount 그런 속성 :

{
  identifier: 'id',
  items: [
    { id: 123, name: 'aaa', ... },
    { id: 456, name: 'bbb', ... },
    ...
  ],
  totalCount: 525
}

쿼리가 반환 될 때 상점은 이것을 저장합니다 ( onComplete). 그런 다음 값은 a를 통해 노출됩니다 getTotalCount() 상점의 방법.

The와 함께 사용될 때 start 그리고 count 요청 옵션을 사용하면 멋진 Ajax Pagination ( "525의 1-50 표시")을 가질 수 있습니다.

이것은 API의 일부가 아니기 때문에 READ API의 핵심 구현은이를 구현하지 않습니다. 이 기술의 형태 (내가 한 것과 유사)는 dojo.data.QueryReadStore, 그래서 당신은 아마 거기에서도 볼 수 있습니다.

다른 팁

예제 도코 캠퍼스 한 가지 방법을 보여줍니다. 여기에 fetch 없이 query 매개 변수는 상점의 모든 항목을 반환합니다.

var store = new some.Datastore();
var gotItems = function(items, request){
  console.log("Number of items located: " + items.length);
};
store.fetch({onComplete: gotItems});

dojo.data.api.read의 Onbegin 함수는 일치의 총 크기를 가지고 있습니다.

function size(size, request){
  // Do whatever with the size var.
}

store.fetch({query: {}, onBegin: size, start: 0, count: 0});

이 퀵 스테트에서 : http://dojotoolkit.org/reference-guide/1.7/quickstart/data/usingdatastores/faq.html#question-6-how-do-i-get-a-count-of-items-in-a- DataStore

나는 JSONREST 매장을 사용 하여이 질문에 대한 답을 찾고 있었는데 이것은 다음과 같습니다.

서버에서는 요청의 범위 헤더를보고 반환 할 항목을 알아야합니다. 서버는 컨텐츠 범위 헤더로 응답하여 반환중인 품목 수와 얼마나 많은 총 품목 수를 나타냅니다.

Content-Range: items 0-24/66

에서: http://dojotoolkit.org/reference-guide/dojo/store/jsonrest.html

다음 코드가 저를 위해 작동했습니다

  // questionStoreReader is a pointer that points to and can read ask.json file

  var questionStoreReader=new dojo.data.ItemFileReadStore({url:"ask.json"});

  questionStoreReader.fetch(
   {
     onComplete:function(items,request) // items is an array
      {
        alert(items.length);// number of items in ask.json
      },
   })
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top