我有这个简单的mvvm示例:https://fiddle.sencha.com/#fiddle/j8m
当我从控制器调度view.log时,存储在data属性中,调用viewModel.getStores()返回null。我不明白:/ ...
以下是与小提琴相同的代码:
Ext.define('MainViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.mainviewmodel',
stores: {
todoAccountsStore: {
type: 'tree'
},
skipAccountsStore: {
type: 'tree'
}
}
});
Ext.define('MainViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.mainviewcontroller',
init: function() {
console.log(this.getViewModel());
}
});
Ext.define('MainView', {
extend: 'Ext.panel.Panel',
xtype: 'view-main',
controller: 'mainviewcontroller',
viewModel: {
type: 'mainviewmodel'
}
});
var test = Ext.create('MainView', {
renderTo: Ext.getBody()
});
答案 0 :(得分:1)
要检索商店,您可以在控制器中使用以下代码:
var viewModel = this.getViewModel();
var todo = viewModel.getStore('todoAccountsStore');
var skip = viewModel.getStore('skipAccountsStore');
根据此thread,他们声明getStores
方法是私有的。我认为文档仍然没有更新来代表这一点。