2015-09-25 2 views
0

Незначительно новичок в d3.js, так что может быть что-то очевидное, что мне не хватает. Я пытаюсь передать строковую переменную в функцию (d), чтобы вычислить положение «x» текстовых меток на основе другой функции. У меня есть следующий (соответствующий) код:Передача переменной в функцию d3.js (d)

function display_labels(category){ 
    var categories = vis.selectAll("."+category+"s") 
        .data(cat_data); 
    console.log(category); // returns 'year' - correct 
    categories.enter().append("text") 
        .attr("class", category+"s") 
        .attr("x", function(d) { 
         console.log(category); // returns undefined - incorrect 
         // more code after this 

Как я могу передать строку в функцию, так что он будет работать?

+0

Странно! сложно поверить. вы получаете ошибки? В отладке javascript вы получаете категорию как неопределенную? – Cyril

+0

Это должно работать должным образом. Я предполагаю, что ошибка не вызвана кодом, который вы предоставили. Есть ли другие 'console.log()? В этом случае попробуйте идентифицировать вызов в своем обратном вызове, изменив его на нечто вроде 'console.log (« x »+ category). – altocumulus

+0

@altocumulus Я использовал ваше предложение и обнаружил, что случайно создал цикл, который вызвал функцию снова с неопределенной категорией, спасибо за помощь! – Zephyremily

ответ

0

Далее в коде у меня была инструкция if, которая неправильно вызвала ту же функцию снова с неопределенной категорией. Я использую:

if (category2 !== 'undefined') { display_labels(category2); } 

Вместо:

if (category2 !== undefined) { display_labels(category2); } 
Смежные вопросы