我总是想知道
Sencha Touch 2如何知道哪个控制器先运行,哪一个是下一个
ST2如何知道哪个控制器负责哪个视图。
我们可以在一个视图上设置多个控制器,如果是,如何连接它们?
我们可以让一个控制器控制多个视图吗?如果是的话,事件是如何流动的?
如何将view1与controller1,......,viewX与controllerX连接起来。
谢谢。
答案 0 :(得分:3)
controllers:[]
数组中列出的顺序。另请参阅ext application startup sequence:init
方法答案 1 :(得分:2)
我的回答是指Sencha Touch 2.3.1。
除了您通过控制器http://docs.sencha.com/touch/2.3.1/#!/api/Ext.app.Controller的refs
和control
属性定义的关系之外,没有真正的“耦合”。
应用程序使用的所有控制器都在Application的Ext.app.Application.controllers配置中指定。应用程序自动实例化每个Controller并保留对每个
的引用
我猜包含控制器的顺序是由app.js的controllers
属性定义的(通过在init中放置一些console.log()来验证是否相当容易每个控制器的方法)。
对于View,“负责”没有这样的关系,控制器引用了Views,就是全部。值得一提的是,控制器可能需要views
(以及stores
和models
),但这与包装阶段的包含有关,在运行时没有与这些组件“绑定”。
这是可能的,只需定义两个控制器同时具有对同一视图的引用。无论如何,这将是糟糕的,因为它会在多个地方传播相同视图的逻辑。
是的,这是可能的。例如,我用来编写一个控制器来管理总是一起使用的一组简单视图(例如向导)。您只需在单个控制器中拥有这些视图事件的所有处理程序。
鼓励的方式是通过控制器http://docs.sencha.com/touch/2.3.1/#!/api/Ext.app.Controller的refs
和control
属性。
总之,在我看来,控制器更像是一个工具,供开发人员 组织代码,有意义地提高可维护性,而不是在MVC中严格实现MVC。框架。