2015-07-21 1 views
0

Мне нужно выполнить код в моем ViewController только тогда, когда поле в View изменило его значение пользователем, вызвав событие change.Событие изменения. Есть ли способ различать изменение пользователя и программные изменения?

Проблема в том, что в некоторых местах контроллера я использую this.getViewModel().set('name', 'value'), который также запускает change. В этих случаях, когда значение изменяется программно, я не хочу выполнять код, который запускается событием. suspendEvents() не работает, кажется there's a bug который не фиксируется с очень долгого времени. (Он говорит [FIXED], но люди все еще жалуются, что это не работает).

Итак, есть ли способ определить, было ли это изменение сделано мной (программно) или пользователем?

Я использую ExtJS 5.1.

ответ

0

В вашем представлении может быть создано настраиваемое событие, которое отделяет ваше изменение пользователя от программного.

Было бы проще помочь, если вы можете предоставить короткий пример использования Sencha Fiddle.

0

В Field mixin есть частная собственность, которая используется внутренне, чтобы избежать стрельбы change. Это числовой флаг, поэтому его следует установить в 1. Основанный в mixin, вы можете сделать что-то вроде:

me.suspendCheckChange++; 
this.getViewModel().set('name', 'value') 
me.suspendCheckChange--; 

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

  • Нет связанных вопросов^_^