2013-10-25 78 views
0

我想這樣做,當我的angularjs應用程序加載時,它讀取url的查詢參數(http://myurl/?params=Resource1,Resource2,Resource3),然後根據查詢參數(例如Resource1,Resource2,Resource3)提取所有JSON資源。一旦3個資源到達,它就更新一個或多個指令......即, 「ListDirective1」,「ListDirective2」。如何在AngularJS中使用query params onload?

我有兩個問題: 1)在句法上,我如何通過控制器訪問$ locationProvider?或者,這不是獲取查詢參數的恰當位置,應該使用服務?

2)一旦我獲得了所有的資源,並將它們放在我的主應用程序控制器$ scope的一部分中,那麼將這些信息提供給ListDirective1的最佳方法是什麼?

+0

我想你自己回答了你的兩個問題。任何不是演示聲明邏輯的東西都不應該在控制器中。使用服務來加載資源並使信息可用。 –

+0

在所有指令和控制器初始化後,服務是否保證加載? – Rolando

+1

不,但這就是爲什麼你有動態綁定和承諾。因此,您的控制器可以使用服務來獲取數據,等待承諾完成,然後將它們傳遞到要顯示的指令上。 – tennisgent

回答

0

也許你正在尋找這

scope.$on('$routeChangeSuccess', function (ev, current, prev) {...}) 

這將總是叫當你的路線改變

,並獲得在你的控制器位置提供,試試這個

yourApp.controller('controllerName', ['$scope', '$location', function($scope, $location){...})