簡體   English   中英

Angular-從服務到控制器的異步更新和渲染

[英]Angular - async updates & rendering from service to controller

我有一個偵聽webSockets的Service (不能使用回調或Promise,數據更新是隨機的)。 服務獲取更新並將其保存到服務的對象。 我有一個帶有控制器的angular-app頁面,該頁面在$scope中具有服務對象。

但是在頁面上呈現數據時出現問題。 現在,我正在使用$ timeout()更新視圖,但正在尋找一種更優雅的方法。

我知道可以在服務的對象上使用$watch ,但是我認為它對於瀏覽器來說太重了。

那么在服務數據更改后呈現視圖/控制器的正確方法是什么?

您可以使用$rootScope.$broadcast作為替代方案,但它也像$ watch一樣沉重,我不知道您為什么害怕使用$ watch,性能成本並不那么大!

要使用$broadcast請將以下代碼行添加到您的服務中:

$rootScope.$broadcast('WatchedData', data);

然后在您的控制器中執行以下操作:

$scope.$on('WatchedData', function(event) {  return stuff  });

要了解有關$rootscope.$broadcast更多信息,請檢查答案

我建議您使用resolve ,它將在控制器和View實例化您的路由文件之前加載數據,並將Service注入功能

您可以觀看此演示PLunker演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM