0

您好我正在構建一個angularjs應用程序,它在整個應用程序中都有一個定時器。每分鐘我都會輪詢服務器以查看用戶是否在收件箱中收到新消息。收件箱的angularjs全球定時器

我想知道什麼是最好的設計方法?我看到兩個選項至今:

1)Rootscope功能 2)服務

與服務方法的問題是,我必須注入此服務每個控制器我有。其他人對如何設計這個應用程序有任何建議嗎?

感謝

回答

2

使用的服務 - 這是一些跨領域的關注,但可能你的控制器不是所有需要了解。在需要的地方注入它確實涉及一些額外的按鍵,但這是一個好處,而不是問題 - 它使您的代碼更加模塊化,更易於測試。

如果您使用服務,您可以在您的控制器測試中注入一個存根實例,以便您可以獨立測試控制器。您可以使用Jasmine spies(例如)從您的服務中返回模擬值,以便您可以輕鬆測試控制器如何處理一系列輸入。

+0

如果我把我的計時器放在服務中,當我瀏覽整個站點時,計時器將繼續運行而不是重新啓動?因爲這些服務是單身人士。 – user1424508

+0

把邏輯重新啓動計時器在您的服務以及。如果需要,您可以公開一個控制器請求重置的方法。 – joews