2016-05-16 2 views
0

я есть ViewModel:Get ViewModel от магазинов слушателей

Ext.define('Shop.view.BooksViewModel', { 
extend: 'Ext.app.ViewModel', 

alias: 'viewmodel.booksVM', 

stores: { 
    books: { 
     model: 'Poly.model.books', 
     extend: 'Ext.data.Store', 
     listeners: { 
      update: function() { 
       // get this view model for set record in 'getBooks' formula 
      } 
     } 
    } 
}, 

formulas: { 
    getBooks: { 
     get: function (value) { 

      return value; 
     } 
    } 
}}) 

и в функции «обновление» в магазине я хочу получить эту ViewModel и установить в формуле записи. Но если я звоню «это» в магазине fucntion, я получаю «магазин»

ответ

2

Использование initConfig mehod.

Ext.define('Shop.view.BooksViewModel', { 
extend: 'Ext.app.ViewModel', 

alias: 'viewmodel.booksVM', 

initConfig: function(instanceConfig) { 
    var me = this, 
     config = { 
      stores: { 
       books: { 
        model: 'Poly.model.books', 
        extend: 'Ext.data.Store', 
        listeners: { 
         update: function() { 
          console.log(me.getFormulas().getBooks); 
         } 
        } 
       } 
      } 
     }; 
    if (instanceConfig) { 
     me.getConfigurator().merge(me, config, instanceConfig); 
    } 
    return me.callParent([config]); 
}, 

formulas: { 
    getBooks: { 
     get: function (value) { 

      return value; 
     } 
    } 
}}) 
Смежные вопросы