0
我正在寫從指定網址加載數據應用於LineChart指令:Angularjs指令控制器:等待DOM做好準備
<line-chart dataurl="{{ some_url }}"></line-chart>
然後在我的線型圖指示,我有這應該加載控制器數據:
directive('lineChart', function() {
return {
restrict: 'EA',
scope: {
dataurl: '@'
},
controller: function($scope, $http){
$http.get($scope.dataurl)
.success(function(data) {
$scope.data = data;
});
},
link: function(scope, element, attrs) {
...
這裏的問題是,控制器被調用之前DOM就緒,這意味着dataurl =「」,我得到一個404錯誤。我想有一個使用$超時服務的解決方案,但我不需要整個DOM準備好,只有<line-chart>
部分。 我該怎麼辦?
謝謝。
謝謝,但它仍然無法正常工作。當我在我的指令控制器中使用'console.log($ scope.dataurl)'時,即使使用ng-attr-屬性,我也有一個空字符串。 也許我會避免使用一個控制器和instaead寫一個'$手錶。(dataurl)'在向鏈路部分,做什麼,如果它的空重數據,如果它不是,但它不是很優雅... – lewer
噢,抱歉我編輯我的帖子,刪除括號。嘗試發佈jsfiddle如果它不工作 –
其實我認爲我需要括號,因爲some_url取決於一個名爲topicId的變量。 這裏有一個的jsfiddle http://jsfiddle.net/zRxj8/5/但它沒有真正的工作,因爲我不知道如何處理D3依賴和XHR調用 – lewer