2015-11-06 34 views
0

在我的應用程序中,我們有一個後面的面板,下一個按鈕包含在每個導航屏幕中。從下一個按鈕,我想打電話給使用控制器:Controller.doInit不是一個函數嗎?

myApp.app.getController('folder.MyInfoController').submitMyInfoForm(nextButtonId); 

不過,我得到一個類型錯誤:controller.doInit不是一個函數。我在我的控制器中有一個init方法,它已經在工作。

回答

1

您收到此錯誤,只是因爲「folder.MyInfoController」控制器 - 也就是說,它不會擴展Ext.app.ControllerExt.app.Application::getController期待找到。現在的一些積分...

我的心理感官告訴我,很可能你試圖找到一個視圖控制器 - 這顯然不是一個應用程序控制器相同。他們都共享一個基類,但服務於不同的目的,並最終有不同的實現。這在API中有很好的定義。

作爲下一段的前言,我還要指出你在做什麼看起來像反模式。使用視圖控制器的最大優點是它們爲您提供了MVC的所有便利,同時保持組件彼此分離 - 只有特定情況下您可以證明訪問組件範圍之外的某個組件並且我無法想象爲什麼你需要從全局環境訪問一個好的理由。

這就是說,你可以找到通過獲取實例化的組件(型「folder.MyInfo」 - 無論你叫它)的引用的視圖控制器和asking it for it's view-controller。請注意,組件與其視圖控制器之間存在一種關係,前者的每個實例都具有後者的唯一實例。

+0

有此問題。的確,我正在使用視圖控制器....感謝您的確認。 – Lawrence