【问题标题】:ExtJS4 MVC - pass data to details form - best practicesExtJS4 MVC - 将数据传递到详细信息表单 - 最佳实践
【发布时间】:2011-12-08 14:41:50
【问题描述】:

我开始按照 ExtJS4 的新 MVC 模式开发原型。我有一个包含客户列表(网格)和详细信息表单的主表单(客户),双击网格中的一行打开详细信息表单。目前,我已经在主表单的控制器中完成了这样的操作:

var view = Ext.widget('CustomerDetailsView');
view.show();

但我还需要将 customerID 传递给详细信息表单,以使详细信息表单为客户加载附加数据。在simple MVC sample app at the Sencha web site 中,这是由:

view.down('form').loadRecord(selectedRecord);

所以我理解这一点的方式是详细信息视图加载了主视图中的整个记录​​。首先,我的详细信息视图有它自己的控制器和存储,其次,这似乎不是在视图之间进行通信的正确方式。

  • Master 控制器不应该以某种方式调用 Details 控制器吗?
  • in another post here 建议使用事件进行所有这些通信 在视图/控制器之间,但我不确定创建是否有意义 所有这些应用程序范围的事件只是为了一个简单的主/细节 沟通

在 ExtJS4 MVC 应用程序模式中将数据传递给子视图/控制器的建议方法是什么?

【问题讨论】:

标签: model-view-controller extjs4


【解决方案1】:

这里没有一种“正确”的做事方式。构建最有意义的应用程序真的取决于您。您不必为单个视图使用单个控制器。事实上,我想说一个控制器应该响应来自多个视图的事件作为一般规则。当然,如果你有一个超级复杂的视图并且你的控制器类已经失控了——一定要把它拆开。

现在回答您提出的问题:

  1. 是的,您可以让一个控制器与另一个控制器对话:来自主控制器 - this.getController('DetailsController').doSomething();

  2. 您在这里是驾驶座。最终,您决定遵循一种或另一种模式。如果您觉得这不合适,请不要这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多