2016-07-08 8 views
1

У меня есть формула и вы хотите ее выполнить, если в этом магазине находится viewModel. changeData.Формула сложения для изменений в магазине

Когда я делаю это, формула не работает, если данные в хранилище изменили

stores: { 

    currentStore: { 
     extend: 'Ext.store.MyStore', 
     trackRemoved: false 
    }, 
    }, 
    formulas: { 

    'executeWhenStoreChange': { 
     bind: '{currentStore}', 

     get: function() { 
      console.log('store change') 
    }, 
+0

Я бы получить вашу грамматику фиксированным для вас, если я только понял, что вы пытаетесь нам рассказать. – Alexander

+0

Возможно, вы ищете событие 'datachanged' в магазине. http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.AbstractStore-event-datachanged – Gilsha

+0

Я хочу, чтобы после изменения данных в хранилище, вызывается формула 'executeWhenStoreChange', возможно, я могу связывать сохранить эту формулу? – user3045654

ответ

4

Если вы хотите, чтобы огонь функцию, когда данные изменились, я хотел бы использовать datachanged слушателя в магазин (ы) вы хотите, чтобы событие срабатывало.

currentStore: { 
     listeners: { 
      datachanged: function(store, eOpts) { 
       console.log('store change'); 
      } 
     } 
    }, 

Если вы хотите для всех магазинов просто ссылаться на функции в каждом datachanged слушателя

currentStoreA: { 
     listeners: { 
      datachanged: 'onStoreDataChangeD' 
     } 
    }, 
    currentStoreB: { 
     listeners: { 
      datachanged: 'onStoreDataChangeD' 
     } 
    }, 

Затем в контроллере представления:

onStoreDataChangeD: function(store, eOpts) { 
    console.log('store changed'); 
}