我需要将一些变量从控制器传递到其视图或另一个视图。我怎样才能在extjs4的MVC结构中做到这一点?
答案 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()函数(否则您将无法控制同一视图的多个实例)。
随意创建和销毁您的视图。传递回调函数以从父视图进行通信。