Extjs 有人能解释Sencha Touch控制器是如何与相关视图结合的吗

Extjs 有人能解释Sencha Touch控制器是如何与相关视图结合的吗,extjs,sencha-touch,sencha-touch-2,Extjs,Sencha Touch,Sencha Touch 2,我一直在想 Sencha Touch 2如何知道先运行哪个控制器,然后运行哪个控制器 ST2如何知道哪个控制器负责哪个视图 我们可以在一个视图上有多个控制器吗?如果可以,如何连接它们 一个控制器可以控制多个视图吗?如果是,事件是如何进行的 如何将view1与controller1连接,…,viewX与controllerX连接 谢谢。 回复:1-如果您指的是“运行”,则控制器将按照它们在应用程序控制器:[]阵列中列出的顺序进行初始化。另见: 回复:2-控制器只监听来自视图的事件。监听器安装在控制

我一直在想

  • Sencha Touch 2如何知道先运行哪个控制器,然后运行哪个控制器

  • ST2如何知道哪个控制器负责哪个视图

  • 我们可以在一个视图上有多个控制器吗?如果可以,如何连接它们

  • 一个控制器可以控制多个视图吗?如果是,事件是如何进行的

  • 如何将view1与controller1连接,…,viewX与controllerX连接

  • 谢谢。

    • 回复:1-如果您指的是“运行”,则控制器将按照它们在应用程序
      控制器:[]
      阵列中列出的顺序进行初始化。另见:
    • 回复:2-控制器只监听来自视图的事件。监听器安装在控制器的
      init
      方法中
    • 回复:3技术上是的-多个控制器可以监听相同视图的事件-但这不是一个好的做法。这就像有更多的老板
    • 回复:4是,通常一个控制器控制多个视图
    • 回复:5见

    我的答案涉及Sencha Touch 2.3.1

    除了通过控制器的
    refs
    control
    属性定义的关系外,没有真正的“耦合”

    应用程序使用的所有控制器都在应用程序的Ext.app.Application.Controllers配置中指定。应用程序自动实例化每个控制器并保留对每个控制器的引用

  • 我猜包含控制器的顺序是由app.js的
    controllers
    属性定义的(通过在每个控制器的init方法中放置一些console.log()来进行验证是非常容易的)

  • 对于一个视图,不存在这样的“负责”关系,控制器有对视图的引用,仅此而已。值得一提的是,控制器可能需要
    视图
    (和
    存储
    模型
    ),但这只是与打包阶段的包含有关,在运行时没有对这些组件的“绑定”

  • 这是可能的,只需定义两个控制器,这两个控制器都有对同一视图的引用。这无论如何都是不好的,因为它会将同一视图的逻辑传播到多个地方

  • 是的,这是可能的。例如,我使用编写一个控制器来管理始终一起使用的一组简单视图(例如向导)。您只需将这些视图的事件的所有处理程序放在一个控制器中即可

  • 鼓励的方法是通过控制器的
    refs
    control
    属性


  • 总之,在我看来,控制器更像是开发人员有意义地组织代码和提高可维护性的工具,而不是框架中严格的MVC实现。

    为什么投票支持close?我很高兴学习。我在关注这个问题。同时,你能告诉我你怎么知道有人投票支持close吗?嗨@SunnyRGupta谢谢。如果您查看share | edit | close(1)| delete |标志,您将发现close后的数字,即投票赞成结束问题的人数。给出结束的理由总是一个很好的做法。哇,虽然我看不到任何密切的链接,但我看到的只是分享|编辑| flaghi@Anubis谢谢你的解释。我同意一个帖子一个问题,但有时我认为政策需要改变,允许人们在一个帖子里问一组相关的问题,这对提问者和读者来说更有意义,也更方便。还有,期待你的回答:)谢谢你,阿努比斯。我还有一个问题,你能看一下吗?