2015-07-21 68 views
0

只有當View中的某個字段的值由用戶更改時,我需要在我的ViewController中執行一些代碼,從而觸發change事件。更改事件 - 是否有辦法區分用戶更改和程序更改?

問題是,在控制器的某些地方,我使用this.getViewModel().set('name', 'value')這也觸發change。在這些情況下,如果以編程方式更改值,我不想執行由事件觸發的代碼。 suspendEvents()不起作用,似乎there's a bug這是很長一段時間沒有得到修復。 (它說[FIXED],但人們仍然抱怨說它不起作用)。

那麼有沒有辦法來檢測這個改變是由我(編程)還是用戶?

我正在使用ExtJS 5.1。

回答

0

您的視圖可能觸發自定義事件,該事件會將您的用戶更改與程序化事件分開。

如果您可以在Sencha小提琴上提供一個短的可運行示例,它會更容易幫助。

0

Field mixin有一個私人財產,內部用於避免發射change事件。 這是一個數字標誌,因此將其設置爲1應該這樣做。基於mixin,你可以做類似:

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