Слушатель События Изменения ExtJS, не удающийся стрелять

Я в значительной степени с Вами на этом человеке. Соглашения о присвоении имен, которые Вы использовали:

  • Ясный о том, каково каждое тестовое состояние.
  • Конкретный относительно ожидаемого поведения.

, В чем больше Вы нуждаетесь с тестового имени?

Вопреки ответ Ray я не думаю Тест , префикс необходим. Это - тестовый код, мы знаем это. Если необходимо сделать это для идентификации кода, то у Вас есть большие проблемы, , Ваш тестовый код не должен путаться с Вашим производственным кодом.

Что касается длины и использования подчеркивания, тестовый код , о ком заботится ад? Только Вы и Ваша команда будете видеть его, пока это читаемо, и ясно о том, что делает тест, продолжите!:)

Однако я все еще довольно плохо знаком с тестированием и блоггинг моих приключений с ним :)

6
задан Eric Ryan Harrison 2 December 2009 в 14:45
поделиться

3 ответа

"GridPanel столбцы привязаны к элементы формы FormPanel так, чтобы когда запись выбрана в GridPanel, все значения заполняется в форме ».

Как я понимаю из приведенной выше цитаты, событие rowclick - это то, что фактически инициирует изменение вашей формы. Чтобы избежать опроса, это может быть место для прослушивания и, в конечном итоге, активировать ваше пользовательское событие изменения.

4
ответ дан 17 December 2019 в 07:05
поделиться

Если вы нашли время, чтобы прочитать source, вы увидите, что класс Ext.form.Field запускает это событие изменения только в функции onBlur

-1
ответ дан 17 December 2019 в 07:05
поделиться

Вот уродливый прием, который я сделал для решения этой проблемы:

var current_id_value = '';
var check_changes = function(offset) {
   offset = offset || 100;
   var id_value = document.getElementById('id_field').value || '';
   if ( id_value && ( id_value != current_id_value ) ) {
      current_id_value = id_value;
      change_iframe(id_value);
   } else {
      offset = offset + 50;
      if ( offset > 2500 ) {
         offset = 2500;
      } 
      setTimeout(function() { check_changes(offset); }, offset);
   }
};

var change_iframe = function(id_value) {
   if ( id_value ) {
      document.getElementById('upload_iframe').src = 'http://api/upload.php?id=' + id_value;
   } else {
      document.getElementById('upload_iframe').src = 'no_upload.html';
   }   

   setTimeout(function() { check_changes(100); }, 1500);
};

Это некрасиво, но работает. Все боссы счастливы.

1
ответ дан 17 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: