2013-02-14 61 views
1

我正在開發一個使用angular.js和d3.js的多數據應用程序。我很難將< svg>納入我的範圍。調用另一個指令的模板指令

現在發生的事情是,指令ngTests在ngRepeat執行它的方法之前被加載。

我把小提琴放在這裏,讓你們可以有更好的主意。

jsfiddle

<ng-chart></ng-chart> 

PS:我可以得到我的ngTests指令的TD標識,但它並沒有在所有<td ng-tests id="histogram{{$index}}"更新。

如果我將此行更改爲<td ng-tests id="histogram">,在我的指令中使用直方圖作爲ID,並將我的ngTests指令更改爲只讀「#histogram」,它在我的ngRepeat的第一個表上創建了6次svg,這不是結果我期待。

謝謝。

+0

如果你有一個可行的小提琴,你會得到更快的答案:)至於這個問題 - 我認爲你不需要傳遞id到ngTests指令,你可以使用元素[0]作爲d3的dom目標。選擇 – 2013-02-15 06:10:43

回答

0

做兩件事。在你的ngChart指令中,你有指定的索引屬性,如index="index",但它需要是index="{{$index}}"。然後,從其他指令讀取,而不是直接訪問屬性像attrs.index,你應該使用attrs.$observe更像屬性值,如下:

attrs.$observe('index', function(observedIndex) { 
     console.log('observedIndex:', observedIndex); 
    }); 

這樣,當指數發生變化(例如,通過其他指令)你會收到通知,並可以更新元素的文本。我撥動小提琴並使其工作here

相關問題