Jaydata .forEach повторяется только 50 раз

Моя конечная точка Jaydata и OData полностью функциональна. :)

Когда у меня есть база данных с менее чем 50 записями, все работает идеально. Но для ВСЕХ моих баз данных с 50+ записями JayData .forEach перебирает только первые 50.

Сначала я подумал, что это проблема с базой данных, но я попробовал ее на трех разных таблицах.

Я также поместил оператор печати в .forEach, чтобы убедиться, что он вызывался только 50 раз: введите здесь описание изображения

Мой javascript (обратите внимание, я удалил http:// перед локальным хостом, потому что stackoverflow не позволяет мне публиковать URL-адрес локального хоста):

var ctx = new WebApplication.resource_dbEntities({ name: 'oData', oDataServiceHost: 'localhost:8080/Resource/example.svc' });

    ctx.onReady(function() {
        
            ctx.department
            //.filter( function ( per ) { return per.person_active == 1 } )
            .toArray().then(function(dep){
               dep.forEach(function(d) {
                console.log("This will print 50 times");
                    var item = "<li class=@cls data-id=@id><a href=#>@name</a></li>"
                            .replace("@cls", 'category')
                            .replace("@id", d.department_id)
                            .replace("@name",d.department_name);
                             $('#departments').append(item);
               });
          })
        
          .fail(function(r){
            console.log(r);
          });
        
        });

Кто-нибудь сталкивался с подобной проблемой? Спасибо всем!


person AllieCat    schedule 28.06.2013    source источник
comment
@SamuelReid Спасибо - я только что сделал. :)   -  person AllieCat    schedule 28.06.2013


Ответы (1)


Возможно проблема с сервером. В своем браузере откройте URL-адрес .../Resource/example.svc/department и посмотрите, что вы получите, возможно, вам придется посмотреть на источник страницы или сетевой трафик.

person Gabor Dolla    schedule 28.06.2013
comment
Мне кажется, что 50 - это обычное ограничение на стороне сервера. Вам нужно будет использовать take+skip или следующий - person Gabor Dolla; 28.06.2013
comment
Вы совершенно правы - сервер передает только 50 записей. Я попытался .take(60), но это не сработало. Есть ли способ отключить ограничение на стороне сервера? - person AllieCat; 28.06.2013
comment
Я использую odata4j, и все, что мне нужно сделать, это установить для maxResults большее число. Спасибо, Габор. - person AllieCat; 28.06.2013