我們正在用AngularJS開發我們的應用程序,我們一次又一次地遇到Angular運行或加載控制器兩次的問題。這在測試我們的控制器時更具侵入性,更具體地說,當與茉莉花的SpyOn一起使用Testacular時(因爲它們在我們的代碼運行之前被觸發)。所以,我們的問題是,在實例化不需要在測試代碼中解決問題的控制器時,Angular保證會調用構造函數或init方法這樣的事情嗎? TIA。
回答
你的控制器不應該被加載兩次,除非你做錯了什麼。你不應該破解任何解決方法。
您可能想要提供一個具體示例,說明如何加載控制器(和/或與控制器關聯的部分)。這聽起來像您可能有一個路由問題,導致您的視圖爲每個請求加載兩次。
假設這是一個路由相關問題,除非/直到您可以提供更多信息以幫助人們來幫助您,您可能需要閱讀本文檔。要特別提到要提及「重定向」和「HTML 5」模式部分:
http://docs.angularjs.org/guide/dev_guide.services.$location
隨着資料太少去,我不能回答你的問題,但也許這種聯繫將幫助你幫助你自己。 :)
如果您在路由器中指定了控制器,那麼您的模板不需要通過ng-controller標籤指定控制器。這樣做會加倍加載你的控制器。
這也發生在我身上。 Angular.js文檔應該更加清晰,但看看他們的示例應用程序的差異顯示在添加路由之後從模板中刪除控制器信息:https://github.com/angular/angular-phonecat /compare/step-6...step-7 –
我有同樣的問題,我正在做你所描述的。謝謝,我正把頭撞在牆上! – Martijn
- 1. 結構構造函數或init
- 2. jQuery的構造函數和init
- 3. Servlet構造函數和init()方法
- 4. PHP - init父變量(帶構造函數)
- 5. C++ init類成員構造函數
- 6. 構造函數super()es6 angularjs
- 7. 沒有參數的構造函數或參數構造函數
- 8. 構造函數或複製構造函數?
- 9. AngularJS/Jasmine undefined不是構造函數
- 10. 構造函數內的構造函數
- 11. Android活動LaunchMode SingleTask不會觸發MvvmCross ViewModel構造函數或Init方法
- 12. 什麼應該是構造函數屬性值..a原型構造函數或對象構造函數本身
- 13. 如何爲空arg構造函數提供init方法?
- 14. 橋接時init和initWithBridge構造函數的區別?
- 15. 爲什麼要使用類方法構造函數與alloc/init?
- 16. C++構造函數中超類的init成員
- 17. In-class init(賦值樣式)vs構造函數的性能
- 18. Swift中的init與C#中的構造函數相同嗎?
- 19. 爲什麼在Objective C構造函數中使用[super init]?
- 20. jquery對象實際上只是init構造函數'enhanced'
- 21. 構造函數param在init中不可用
- 22. OOP - 覆蓋init方法在構造函數
- 23. 構造函數
- 24. 構造函數中的調用基構造函數和其他構造函數
- 25. 預期的構造函數,析構函數或類型 '(' 令牌
- 26. 預期的構造函數,析構函數或類型轉換
- 27. 構造函數\析構函數或對OOP的理解
- 28. FB init函數在angularJs中不工作
- 29. 當調用複製構造函數或賦值構造函數時?
- 30. Javascript - 在構造函數或構造函數的prototype屬性中設置屬性?
這可能有助於瞭解您的測試是如何設置的,因爲在測試期間,Angular應該只是實例化控制器一次。 –
我不認爲這會很容易幫助沒有看到代碼示例... –