Функция transitionDuration не существует в nvd3.js

Я изучаю nvd3.js для рисования диаграмм. Из образца с сайта я выбираю следующий простой код для тестирования:

chart = nv.models.lineChart()
                      .margin({ left: 100, right: 100 })  //Adjust chart margins to give the x-axis some breathing room.
                      .useInteractiveGuideline(true)  //We want nice looking tooltips and a guideline!
                      .transitionDuration(350)  //how fast do you want the lines to transition?
                      .showLegend(true)       //Show the legend, allowing users to turn on/off line series.
                      .showYAxis(true)        //Show the y-axis
                      .showXAxis(true)        //Show the x-axis

Но когда я запускаю код, он говорит, что transitionDuration не существует. Если я удалю эту строку, все будет хорошо.

Вопрос: Почему эта функция не существует? Я где-то ошибаюсь или есть ли какая-либо дополнительная библиотека, необходимая для загрузки?

Ответ 1

Функция .transitionDuration() имела довольно кратковременный гостевой внешний вид в линейке NVD3 lineChart. Он пропадает к моменту написания, но продолжает вызывать путаницу, главным образом потому, что страница Simple Line Chart по-прежнему относится к ней. Однако пример lineChart на странице NVD3.js сломан и больше не должен использоваться. В обновленном списке примеров сайт рекомендует клонировать репозиторий GitHub.

Функция .transitionDuration() была введена путем фиксации d57a84 в августе 2013 года и устарела при фиксации e177cae всего пять месяцев спустя. Как видно из его истории GitHub, 92ec4bc и, следовательно, больше не доступна. В качестве прямой замены вы можете вызвать функцию .duration() lineChart.

В качестве альтернативы диаграмму можно настроить, вызвав chart.options(), проходящую в duration как свойство объекта options.

chart = nv.models.lineChart()
    .options({
        duration: 500
    })
;

Обновление 9 ноября 2015 г.

По иронии судьбы, даже новый пример из репозитория GitHub ошибочен. Он использует неправильное имя свойства transitionDuration в объекте параметров, который используется для конфигурации. Это просто добавит свойство transitionDuration, которое не причинит вреда и не вызовет ошибок, поскольку оно неизвестно, но также не будет иметь никакого эффекта. Для достижения желаемого эффекта его необходимо изменить на duration.

chart = nv.models.lineChart()
    .options({
        transitionDuration: 300,    // This should be duration: 300
        useInteractiveGuideline: true
    })
;

Забастовкa >

Обновление от 19 августа 2016 г.

Вышеупомянутый недостаток в примере lineChart из репозитория GitHub был исправлен с 21 мая 2016 года путем фиксации a683c97.

Ответ 2

Добавление этого ответа для всех, кто случайно сталкивается с этой проблемой с неправильным примером кода - примеры на NVD3.org устарели, и на данный момент сайт предлагает клонировать репозиторий Github для последних примеров. Для линейной диаграммы приведен последний пример: https://github.com/novus/nvd3/blob/master/examples/lineChart.html