如何在extjs 4 MVC中将变量从控制器传递到视图,反之亦然?

时间:2011-11-15 17:04:22

标签: extjs extjs4

我需要将一些变量从控制器传递到其视图或另一个视图。我怎样才能在extjs4的MVC结构中做到这一点?

2 个答案:

答案 0 :(得分:5)

如果要从控制器创建视图对象,则直接传递该变量,例如Ext.create('view.myview',{id:Ext.id(),myVariable:"someValue"}); 你可以在视图的initComponent方法中访问它 initComponent: function() { this.myVariable }

答案 1 :(得分:4)

我建议使用Passive View,其中视图的逻辑尽可能少。

您的控制器可以通过ComponentQuery访问视图中的任何小部件。然后,您可以在控制器中编写代码以设置或读取视图中的值。

您还可以使用form.loadRecord()方法将模型加载到视图/表单中。

视图中的小部件通过引发随后由控制器处理的事件与控制器通信。

应该在应用程序启动时加载所有控制器。

您的控制器应该只有事件处理程序,并且绝不应该使用refs数组或getView()函数(否则您将无法控制同一视图的多个实例)。

随意创建和销毁您的视图。传递回调函数以从父视图进行通信。