1

我正在开发一个使用 angular.js 和 d3.js 的多数据应用程序。我很难将 <svg> 包含在我的范围内。

现在发生的是,在 ngRepeat 执行它的方法之前,正在加载指令 ngTests。

我把小提琴放在这里,所以你们可以有一个更好的主意。

jsfiddle

<ng-chart></ng-chart>

PS:我可以在我的 ngTests 指令中获取 td id,但它根本不会更新<td ng-tests id="histogram{{$index}}"

如果我将此行更改为<td ng-tests id="histogram">,请在我的指令中使用 histogram 作为 ID 并将我的 ngTests 指令更改为只读“#histogram”,它会在我的 ngRepeat 的第一个表上创建我的 svg 6 次,这不是我期望的结果。

谢谢你。

4

1 回答 1

0

做两件事。在您的 ngChart 指令中,您指定了 index 属性,index="index"但它必须是index="{{$index}}". 然后,要从另一个指令中读取属性值,而不是像attrs.index您那样直接访问属性,应该使用attrs.$observe更多类似以下内容:

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

这样,当索引更改时(例如,通过另一个指令),您会收到通知并可以更新元素的文本。我把小提琴分叉了,让它在这里工作。

于 2013-02-16T09:29:22.040 回答