Sencha Touch 使用 mvc 动态使用商店?
Posted
技术标签:
【中文标题】Sencha Touch 使用 mvc 动态使用商店?【英文标题】:Sencha Touch dynamically use of stores with mvc? 【发布时间】:2012-12-10 11:22:45 【问题描述】:所以这是问题所在,我使用 MVC,并且我在 app.js 上声明了几个商店。
但是现在我需要做一个登录验证,并且只有在我得到服务器的响应后才加载商店,但是如果在应用加载时将声明留在 app.js 中,它会自动加载所有商店。
这是我的应用需要做的事情:
LoginView
进行验证,如果验证成功,它会将视图更改为ListView
,此视图有一个从商店加载数据的列表,此视图可以使用其他列表创建其他视图。
我试图要求 ListView
中的商店,但它会抛出错误 cannot call method getCount of null
。
我该怎么做才能让它发挥作用。感谢您的帮助。
这里有一些代码:
Ext.define("App.view.Listview",
extend: 'Ext.Container',
xtype: 'listview',
requires: ['App.view.Listviewdetails',
'App.view.Filtros.Fil***elaPrincipal.Janelafiltrotiempoview',
'App.view.Menuview',
'App.view.Resultadopesquisaview',
'App.view.Pesquisaview',
'App.view.Maisinfousuarioview',
'Ext.Label',
'Ext.field.Search',
'App.store.Tiempos',
'App.store.Empresas',
'App.store.Produtos',
'App.store.Usuarios',
'App.store.FiltrosEvento',
'App.store.Historicos',
'App.store.Pesquisas'
],
config:
id: 'listView',
layout: 'card',
items:
layout: 'vbox',
id: 'listaEventos',
items: [
xtype: 'list',
id: 'listaTiempos',
flex: 6,
emptyText: 'Empty',
store: 'Tiempos',
itemTpl: 'dataTermino descricaoPrevia'
]
和其中一家商店:
Ext.define("App.store.Tiempos",
extend: 'Ext.data.Store',
config:
model: 'App.model.Tiempo',
autoLoad: true,
proxy: 'searchProxy'
);
【问题讨论】:
【参考方案1】:您可以在各自的视图类中的 require 中添加商店。在 app.js 中添加不是强制性的。 所以登录后,当视图实例化时,商店将自动加载。
【讨论】:
我可以在一个视图中要求所有商店,此视图是层次结构中的顶层,还是我需要在我使用的所有视图中要求? 我所做的只是在需要的地方添加商店。而且一旦添加了一个类,我们就不需要再次添加require。这就是 Sencha 提供 view:[], store:[] 等来添加所有类的原因。以上是关于Sencha Touch 使用 mvc 动态使用商店?的主要内容,如果未能解决你的问题,请参考以下文章
Sencha Touch 2:数据集成或如何在sencha和javascript之间共享动态信息