Ng-repeat не использует параметры из директивы

Я смог использовать dygraphs в ng-repeat после того, как директивы стали более понятными для меня здесь.

Чтобы использовать легенду во внешнем элементе div, а не непосредственно на графике, идентификатор используемого элемента div должен быть определен в параметры. Поскольку он должен быть уникальным, я использую $index в представлении:

<div id="{{$index}}">
</div>

И просто используйте цикл, который подсчитывает и добавляет одно и то же число к параметрам в моем контроллере:

i = 0
while i < oject.length
    labelsDiv: i
    ++i 

Я получаю данные для рисования графика в массиве, поэтому затем добавляю параметры в массив, сохраняю все в переменной и передаю это в директиву:

drawGraph.directive "graph", ->
    restrict: "E" # Use as element
    scope: # Isolate scope
        data: "=" # Two-way bind data to local scope
        opts: "=?" # '?' means optional

    template: "<div></div>" # We need a div to attach graph to
    link: (scope, elem, attrs) ->
        graph = new Dygraph(elem.children()[0], scope.data, scope.opts)

Судя по консоли, это сработало (опции перенесены в массив, id-числа в представлении совпадают с id в опциях графиков). Однако, в то время как самая первая легенда самого первого графика работала отлично, легенды других графиков не отображаются, у всех есть ошибка:

Объект 1 не имеет метода «appendChild»

Объект 2 не имеет метода «appendChild» и так далее.

К сожалению, я даже не знаю, в чем может быть проблема. Похоже, что ng-repeat просто получает самое первое число, может быть, другие переменные еще не загружены? Также думал, что это может быть связано с областями, которые не изолированы, но на самом деле они изолированы.

Большое спасибо за твою помощь.


person user3255061    schedule 02.02.2014    source источник
comment
Это может быть связано с тем, что я использую простой идентификатор, может быть, мне нужен эквивалент ng-класса для идентификатора?   -  person user3255061    schedule 03.02.2014
comment
Dygraph ищет элемент jquery? Я не уверен, что elem.children()[0] возвращает правильный тип элемента. Похоже, Dygraph хочет нативный элемент.   -  person Davin Tryon    schedule 03.02.2014
comment
Большое спасибо @DavinTryon, я получил это из этот ответ . И это, кажется, работает, поскольку графики на самом деле рисуются. Просто их легенды отсутствуют и выкидывают ошибки, кроме самой первой.   -  person user3255061    schedule 03.02.2014