2016-06-06 2 views
0

Это сообщение относится к предыдущему question о NodeJS и требует модуля, который вводит функцию. Однако предыдущий вопрос находится в контексте Webpack. Я также пытаюсь интегрировать d3.js и модуль d3.slider, но используя RequireJS.Как интегрировать модули Requirejs, d3 и d3.slider

В соответствии с комментарием, оставленным Nikos Paraskevopoulos, требуется прокладка. Я не успешно реализовал прокладку, необходимую для модуля d3.slider, и надеялся, что кто-то сможет привести меня в правильном направлении. Сейчас у меня есть

require.config({ 
    paths: { 
     "d3": "https://d3js.org/d3.v3.min", 
     "d3.slider": "lib/d3.slider" 
    }, 
    shim: { 
     "d3.slider": { 
      "deps": ["d3"], 
      "exports": "d3" 
     } 
    } 
}); 
require(['d3'], function(d3) { 
    console.log(d3.version); 
    d3.select("#time_slider").call(d3.slider()); 
}); 

Это журналы:

3.5.17

TypeError: d3.slider не является функцией

Я думаю, что моя проблема заключается в прокладке, но я м не совсем уверен. Любое направление приветствуется.

+1

Были ли последние две строки внутри 'require (['d3.slider'], function (d3) {...})'? –

+0

мои извинения, нужны две последние строки (['d3'], function (d3) {...}) Я обновлю сообщение, чтобы это отразить. Когда я попробовал ваше предложение, консольные журналы: _undefined_ и _d3.select не являются функцией_ – gabalmat

ответ

0

Когда я смотрю исходный код d3.slider, я вижу, что он вызывает define. Поэтому вам не нужен shim.

Кроме того, вы не загружаете его. Вы должны сделать это:

require(['d3', 'd3.slider'], function (d3) { 
    console.log(d3.version); 
    d3.select("#time_slider").call(d3.slider()); 
}); 

В источнике я вижу, что он устанавливает себя на d3. Поэтому вам не нужно добавлять параметр к анонимной функции: после загрузки он будет доступен на объекте d3.

+0

Хорошо, я избавился от прокладки и теперь загружаю d3.slider, но все равно получаю тот же результат, что и в своем сообщении. Я понимаю, что функции d3.slider должны быть доступны на объекте d3, поэтому я не понимаю, почему я все еще получаю TypeError – gabalmat

+0

. В этот момент я предлагаю вам создать [mcve]. – Louis

Смежные вопросы