1

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

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...

有关于此的任何信息?

4

1 回答 1

1

根据题主所说,他已经知道如何在MVC结构中定义一个应用程序。关键是:为什么Ext.require仅在控制器中不起作用,对吗?

controllers,stores,models,views关于in 的显式定义有一些描述app.js

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

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

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

于 2012-05-15T11:15:38.767 回答