對於儀表板類型項目(一個頁面,不同模型的多個較小視圖),我們正在使用Angular框架的其他工具。Angular JS控制器範圍,多視圖
問題由以下部分組成:
- 我有一個控制器,它負責檢索工作項數據。目前,工作項目數據由bugamount和backlogitems組成。
- 我有2個功能在這個控制器負責更新範圍變量(bugAmount和backLogItems)
- 我有2個html文件作爲視圖。這些都包含在主dashboard.html(基本上是一個隨機的地方)。
我現在的問題是,視圖不共享具有鏈接到workItemController的控制器指令的共同祖先。我可以做到這一點,它會完美的工作,但是這嚴重減少了佈局的可能性。
基本上問題:每個視圖現在都有ng-controller屬性,因爲它們都需要訪問範圍。這不起作用,只有其中一個視圖被更新。
僅供參考這些兩個div應該能夠在頁面上的任何地方locatd,並且應該有自己的共享數據訪問(其中ontroller用品)
<div class="backLogView" ng-controller="WorkItemsController">
...
<tr data-ng-repeat="b in backLogItems">
<td class="text-left">{{b.title}}</td>
<td class="text-left">{{b.status}}</td>
<td class="text-left">{{b.assignedTo}}</td>
</tr>
...
</div>
<div class="bugAmountView" ng-controller="WorkItemsController">
...
{{BugAmount}}
...
</div>
到目前爲止,我認爲:
- 創建使用ng-controller指令的雙親,而不是單獨的視圖。這是一個選項,但會嚴重減少視圖的位置(就我而言,這是一個很大的禁止)
- 使用$ rootscope作爲控制器,發佈時將當前作用域更新爲$ rootcope。工作項目。這可能會起作用,但意味着每個控制器都可以訪問其他每個控制器的數據。在我看來,不可能是正確的
是否有一個很好的方式仍然有一個控制器中的鏈接功能(它應該),但在網頁中顯示其數據的視圖(bugamount和backlog)他們沒有共同的祖先。
謝謝! 我讀過關於服務的問題,你的解釋是我需要的後面的推動。信息技術仍然不完美,但我確實解決了所有的問題。我可以加載2個獨立的HTML文件作爲視圖,都使用相同的控制器,並通過用作單例數據提供程序的服務訪問共享數據。 – Edim
我仍然對Angular感到滿意 – jpmcc