Осуществите Прикосновение Sencha плагин ListPaging

У меня есть простое приложение контактов/пользователей Прикосновения Sencha, которое показывает список и затем раскрывает больше деталей.

Я достигаю своего сервера с Расширением. Ajax.request использование нашего API, чтобы забрать пользователей и населить список. Однако totalcount обычно выше 500, таким образом, я должен осуществить плагин ListPaging. Из соображений безопасности я вполне уверен, я не могу сделать метода "по доверенности" (потому что я должен использовать "символ" для подтверждения запросов). Возможно, я неправ; документация редка, таким образом, мне нужно повышение.

Мой сервер возвращает следующее:

    data: [,…]
    hasnextpage: true
    haspreviouspage: false
    pageindex: 0
    pagesize: 9999
    success: true
    totalcount: 587
    totalpages: 14

Мой магазин:

     Ext.define('MyApp.store.StudentStore',{
        extend: 'Ext.data.Store',
        config:{
           storeId: 'Students', 
           model:'MyApp.model.people',
           autoLoad:false,
           remoteFilter:true,      //just trying stuff I've read about
           sortOnFilter:true,
           clearOnPageLoad: false,
           grouper: {
                 groupFn: function(record) {
                   return record.get('lastname')[0];
                 }
           },
           sorters: 'lastname'
        }
    });

И моя Точка зрения Списка:

Ext.define('MyApp.view.MainPanel', {
    extend: 'Ext.dataview.List',
    alias : 'widget.mainPanel',
    requires: [
        'MyApp.store.StudentStore',
        'Ext.plugin.ListPaging'
    ],

    config: {
        store : 'Students',
        model: 'people',
        grouped:true,
        sorters: 'lastname',
        itemTpl: new Ext.XTemplate(
                ''+                    
                    '

{firstname:ellipsis(45)} {lastname:ellipsis(45)}

' + '

{grade} grade

' + '
' ), plugins: [{ xclass: 'Ext.plugin.ListPaging', autoPaging: true, bottom: 0, loadMoreText: '' }] } });

Я хотел бы использовать плагин ListPaging, чтобы автозагрузить следующие 45 пользователей, когда экран завит к основанию. Любой совет значительно ценится!

ОТРЕДАКТИРУЙТЕ: РЕШЕННЫЙ!!

@arthurakay - вы были правы, мой "символ" определенно становился ударенным в какой-то момент.. Так как мой API требует символа для каждого запроса, я смог создать функцию "beforeload", в которой я установил свое полномочие с символом, который я получил на логине - прежде чем ListPaging нужно будет назвать. Так, к тому времени, когда пользователь готов завиться и активировать ListPaging, мой символ снабжен первым отчетом, который я получил от сервера, и волшебно добавляю еще 50 отчетов каждый раз пользовательские свитки к основанию.

Я действительно надеюсь, что это помогает кому-то!!

Ext.define('MyApp.store.PersonStore',{
    extend: 'Ext.data.Store',
    config:{
        storeId: 'Persons',
        model:'MyApp.model.PersonModel',
        autoLoad:false,
        clearOnPageLoad: true,

        listeners: {
            beforeload: function(store){

                store.setProxy({
                    headers: {
                        Accept : 'application/json',
                        Authorization : 'Bearer:' + this.token
                    },
                    type: 'ajax',
                    pageParam: 'pageindex',
                    url: this.url,
                    extraParams: {
                        count: this.count
                    },
                    reader: {
                        type: 'json',
                        rootProperty:'data',
                        pageParam: 'pageindex',
                        totalProperty: 'totalcount'
                    }
                });
            }
        },

        grouper: {
            groupFn: function(record) {
                return record.data.lastname[0]
            }
        },
        sorters: 'lastname'
    },

    setParams: function(params){
        for (var prop in params){
            if (params.hasOwnProperty(prop)){
                this[prop] = params[prop];
            }
        }
    }
});

И я добавляю 'setParams', добавляя пункты к магазину здесь:

        var feedStore = Ext.getStore('FeedStore');

        //call the setParams method that we defined in the store
        feedStore.setParams({
            token: TOKEN,
            count: 50,
            url: URL
        });
2
nl ja de
можно ли сообщить подробности, почему proxiy не может использоваться здесь?
добавлено автор SachinGutte, источник
@phazorRise, потому что я использую метод API, чтобы возвратить данные, URL, который я объявляю в полномочии, не будет соответствовать моему прикладному URL.
добавлено автор jakeforaker, источник

1 ответы

Вы уверены, что доктора API "редки"?

http://docs.sencha.com/touch/2-1/#!/api/Ext.plugin. ListPaging

От очень главного:

, "Определяя автооповещение: верный, 'бесконечный свиток' эффект может быть достигнут, т.е., следующая страница содержания загрузит автоматически, когда пользователь завьется к основанию списка".

Кроме того, что безопасность имеет отношение к использованию полномочия? Если необходимо передать символ в каждом запросе, используйте "extraParams" конфигурацию на полномочии магазина:

http://docs.sencha.com/touch/2-1/#!/api/Ext.data.proxy. Аякс-кфг-экстрэпарамс

4
добавлено
На самом деле можно определить переменную в app.js, объявив его незадолго до Ext.application() . Это даст вам глобальную переменную, к которой можно получить доступ где угодно в применении, НО Глобальные переменные ПЛОХИ (Проверьте это: stackoverflow.com/questions/2613310/…)
добавлено автор ThinkFloyd, источник
Возможно, глобальная "символическая" переменная становится ударенной в какой-то момент - или возможно это должен быть JSON, закодированный, посылая его в сервер. Могло быть много возможностей здесь, но не видя фактический код it' s трудно, чтобы сказать.
добавлено автор arthurakay, источник
Спасибо, that' s направление я направляюсь, но I' m наличие проблемы, хранящей мой символ как глобальная переменная. Я объявляю его в app.js как window.token и когда я добавляю символ к своему extraParams, инспектор читает "неопределенный". Даже при том, что, когда я печатаю "символ" в пульте, он возвращает правильные данные.
добавлено автор jakeforaker, источник
@arthurakay видят, что мой редактирует - решенный!
добавлено автор jakeforaker, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing