在app.js中声明商店,模型和视图?

时间:2012-05-15 10:45:59

标签: model-view-controller sencha-touch-2

我想知道是否有义务声明我的应用程序在app.js中的所有商店/模型/视图?我之所以这样说,是因为我测试了以下情况:在app.js中声明控制器,然后尝试在相应的controller.js中设置所需的存储/模型/视图,但不起作用[undefined store ......]! 在我的例子中,我在这样的模块中构建应用程序:

app.js
Sales
-- salesController.js
-- salesStore.js
-- salesModel.js
-- salesView_1.js
Account
-- accountController.js
-- accountStore.js
-- accountModel.js
-- accountView_1.js
-- accountView_2.js

and so on...

关于此的任何信息?

1 个答案:

答案 0 :(得分:1)

根据问题所有者的说法,他已经知道如何在MVC结构中定义应用程序。 重点是:为什么控制器中的Ext.require不起作用,对吧?

有一些关于controllers,stores,models,viewsapp.js的明确定义的说明:

  • profiles - 实例化每个Profile并确定它是否应该是活动的。如果是,则还会加载配置文件自己的依赖项
  • 控制器 - 加载后实例化每个Controller
  • stores - 实例化每个Store,如果未指定,则为其提供默认商店ID

这意味着在加载应用程序之前和之后,所有这些必要的东西都是启动。但Ext.require没有,因为它是为异步方式设计的。例如,假设在您的控制器中(您需要所有其他东西:模型,视图,商店),您跳转到使用商店的视图,该商店由定义,而不是任何已启动实例,因此未定义。

不久之后,在app.js中声明所有必需内容的正式方法可确保您在需要时拥有一个实例(控制器/存储/模型/视图)。但是Ext.require支持您的类代码,而不是实例初始化。