在我的AngularJS應用程序我必須永久檢查服務器端的新條目,然後更新客戶端應用程序中保存的當前數據。AngularJS後臺任務指令更新控制器
因此,舉例來說,我有一個控制器MyController
其中包含orders
包含Order
對象。 當一個新的Order
是通過另一個客戶端的服務器端上的REST API創建的時,我想在我的應用程序中獲取更新。 所以我寫了一個directive
orderRefresher
它應用於<body>
並運行一個$interval
,每120秒獲取所有訂單。 當提取新的Orders
時,它們從$rootScope
廣播。
MyController
存在一個偵聽器,當廣播匹配事件時更新訂單。
問題是,因爲偵聽器設置爲$scope
,並且在控制器被破壞時不被破壞,當我嘗試設置orders
屬性(不存在)時,會導致錯誤。
我想過只是把它包裝在try-catch
裏面,但是我必須等到$interval
再次運行才能在控制器重新實例化時獲得更新。
那麼我該如何解決這個問題呢? 有沒有更好的解決方案,然後我的?