ExtJS4 - MVC Store, получение данных - PullRequest
0 голосов
/ 17 мая 2011

У меня есть контроллер с магазином, моделью и видом (панель инструментов):

Ext.define('Cc.controller.Headers', {
  extend: 'Ext.app.Controller',

  stores: ['User'],
  models: ['Agent'],
  views: ['Header'],


  refs: [
    { ref: 'navigation', selector: 'navigation' },
    { ref: 'tabPanel', selector: 'tabpanel' },
    { ref: 'head', selector: 'head' },
    { ref: 'logoutButton', selector: 'head button[action=logout]'},
    { ref: 'helpButton', selector: 'head button[action=help]'}
  ],

  init: function() {
    this.control({
      'head button[action=logout]': {
        beforerender: this.initLogoutButton,
        click: this.onClickLogoutButton
      },
      'head button[action=help]':{
        click: this.onClickHelpButton
      }
    });
  },

  initLogoutButton: function(a){
    var store = this.getUserStore(),
      button = this.getLogoutButton();
    store.load();
    var user = this.getAgentModel();
    button.setText('Logout ['+user.get('lastname')+']');
    console.log(store.count());
  },

  onClickLogoutButton: function(view, record, item, index, e){
    alert('déconnexion');
  },

  onClickHelpButton: function(view, record, item, index, e){
    alert('help');
  }
});

Моя проблема в функции initLogoutButton .Мне нужно получить единственный экземпляр пользователя, который я получаю по запросу ajax (всегда только один экземпляр).Я вижу запрос в консоли js, все хорошо, но я не могу установить переменную или массив с этими данными!

Кроме того, функция store.count () return 0 .

1 Ответ

0 голосов
/ 17 мая 2011

Если вы используете прокси для загрузки данных в свое хранилище, вы должны заметить, что запрос асинхронный!Вам нужно установить текст кнопки после загрузки магазина с данными.

store.load({
    scope   : this,
    callback: function(records, operation, success) {
        // check for success and set the value of button        
    }
});

Функция обратного вызова вызывается после загрузки хранилища и установки значения кнопки.

...