2013-08-01 1 views
0

Так у меня есть #add_button в моих главных app.js:Простой подсчет каждый раз, когда кнопка нажата - Ext JS

{ xtype: 'button', text: 'Add', itemId: 'add_criteria' } 

У меня есть контроллер вот что прослушивает каждый клик и пытается добавить 1 каждый раз, когда #add_button щелкают:

Ext.define('AM.controller.Add', { 
    extend: 'Ext.app.Controller', 
    init: function() { 
     this.control({ 
      '#add_button': { 
       click: this.add 
      } 
     }); 
    }, 

    add: function(btn) { 
     var count = 0; 
     if (count <= 3) 
     { 
      count++; 
      console.log('Count is now ' + count; 

     } 
     else { 
      console.log('wut'); 
     } 

    } 
}); 

контроллер настроен правильно, однако я не могу показаться, чтобы сохранить счетчик на количество раз кликнули. Это говорит мне, что это «неопределенный». Есть идеи?

И да, я видел документы Sencha на компоненте «кнопка». Я, однако, обрабатываю событие контроллером.

+0

Куда вы не уверены? Вызов console.log? – Reimius

+0

Ваша логика для 'count' не имеет смысла. Он будет всегда сбрасываться до нуля при каждом нажатии. – cube

ответ

1

Вы используете count как локальную переменную и инициализируете ее до 0 при каждом нажатии кнопки. Вы должны сделать count переменной-членом контроллера.

Ext.define('AM.controller.Add', { 
    extend: 'Ext.app.Controller', 
    init: function() { 
     this.count = 0; 
     this.control({ 
      '#add_button': { 
       click: this.add 
      } 
     }); 
    }, 

    add: function(btn) { 
     if (this.count <= 3) 
     { 
      this.count++; 
      console.log('Count is now ' + this.count); 

     } 
     else { 
      console.log('wut'); 
     } 

    } 
}); 
+0

Это сработало отлично, но, похоже, не придерживается макета (hbox) моей панели. Как я могу это сделать? –

+0

Я не уверен, что вы здесь задаете ... что делает контроллер с вашим макетом hbox? – kevhender

+0

Обработчик добавляет combobox к моей панели, это здорово. Но он не согласуется с выпадающими знаками, уже отображенными внутри панели. –

Смежные вопросы