Sencha touch 将控制器的视图实例推送到NavigationView
我正在尝试在我的应用程序中添加导航。我在应用程序中定义了一些控制器,因此我可以通过Sencha touch 将控制器的视图实例推送到NavigationView,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我正在尝试在我的应用程序中添加导航。我在应用程序中定义了一些控制器,因此我可以通过this.getApplication().getController('SomeController')访问它们。我想在navigationView上推送SomeController的视图实例。通过使用push({xtype:'someView'})可以很好地工作,但是在我的控制器中,如果我试图更改我的视图,它会说它未定义 我想这是因为我推的视图与我的控制器的视图不同。以下是我的控制器的代码示例: config:
this.getApplication().getController('SomeController')
访问它们。我想在navigationView上推送SomeController的视图实例。通过使用push({xtype:'someView'})
可以很好地工作,但是在我的控制器中,如果我试图更改我的视图,它会说它未定义
我想这是因为我推的视图与我的控制器的视图不同。以下是我的控制器的代码示例:
config: {
refs: {
someView: {
selector: '#someView',
xtype: 'someView'
}
},
},
store: null,
setStore: function(){
//creating store...
//...
someView.setStore(this.store);
}
这是我的观点:
Ext.define('EpaMobile.view.SomeView', {
extend: 'Ext.dataview.List',
alias: 'widget.someView',
xtype: 'someView',
requires: ['Ext.field.Search', 'Ext.Toolbar'],
为视图提供一个
itemId
,在控制器中引用时用作选择器。另外,alias
和xtype
也是一样的,所以只需使用别名并删除xtype
。因此,您的视图应该如下所示:
Ext.define('EpaMobile.view.SomeView', {
extend: 'Ext.dataview.List',
alias: 'widget.someView',
requires: ['Ext.field.Search', 'Ext.Toolbar'],
config: {
...
itemId: 'someViewItemId',
...
}
...
}
最后,将ref
块修改为:
...
refs: {
someView: {
selector: '#someViewItemId',
xtype: 'someView',
autoCreate: true
}
},
...
您现在应该能够使用push({xtype:'someView'})
,而不会出现undefined
错误