Очень простой учебник, например, Д3.js не работает



Я вроде как новичок в D3.JS. Я читаю начало работы с D3 Майка Дьюара. Я попробовал самый первый пример в книге, и он не работает. Я из-за этого всю душу вырываю. Что не так с моим кодом здесь?



В разделе <head>:



<script src="http://mbostock.github.com/d3/d3.js"></script>
<script>
function draw(data) {
"use strict";
d3.select("body")
.append("ul")
.selectAll("li")
.data(data)
.enter()
.append("li")
.text(function (d) {
return d.name + ": " + d.status;
});
}
</script>


В <body>:



<script>

d3.json("flare.json", draw);

</script>


И файл JSON:



[
{
"status": ["GOOD SERVICE"],
"name": ["123"],
"url": [null],
"text": ["..."],
"plannedworkheadline": [null],
"Time": [" 7:35AM"],
"Date": ["12/15/2011"]
}
]
438   4  

4 ответов:

Если вы используете Chrome, это может помешать вам правильно открыть файл из-за ограничений безопасности между доменами. Попробуйте Firefox, чтобы увидеть, если это так (это, вероятно, позволит вам загрузить файл правильно).

Если это проблема, вы захотите установить локальный веб-сервер, такой как WAMP (если вы используете Windows), или следуйте инструкциям на странице wiki здесь: https://github.com/mbostock/d3/wiki

Удачи

Вы проверили консоль браузера, чтобы узнать, есть ли ваш запрос XHR удалось ли это?

Когда я пытаюсь запустить код на своей машине, с локальной версией d3 (v3) в VS 2012 Express, запрос XHR возвращается с сообщением об ошибке:

HTTP Error 404.3-не найден

Однако, когда я изменяю расширение " вспышки" файл из .json to .txt или .js , как указано здесь: https://serverfault.com/questions/39989/iis-cant-serve-certain-file-extension , затем запрос XHR выполняется успешно.

Ну d.name и d.status - это оба массива и должны быть просто строками, если вы хотите показать их содержимое, или yo должен получить доступ к значению индекса 0 этих массивов; т. е., d.name [0] + ':' + d.status[0];

Это может быть ваш JSON. Я проделал то же самое упражнение, и оно отлично сработало. Вот мой js(я приложил к div, а не телу). Я запускаю локальный веб-сервер.

d3.json("data/mta001.json", drawli);

function drawli(data) {
    "use strict";
    d3.select('#mta001')
      .append('ul')
      .selectAll('ul')
      .data(data)
      .enter()
      .append('li')
        .text(function (d) {
            return d.name + ': ' + d.status;
      });
    d3.selectAll('#mta001 li')
      .style('color', function (d) {
        if ( d.status == 'GOOD SERVICE') {
            return 'green';
        } else {
            return 'fuchsia';
        }
      });
}

А вот мой JSON:

[
        {
          "name": "123",
          "status": "DELAYS",
          "text": "delay text",
          "Date": "12/08/2012",
          "Time": " 1:03PM"
        }
]

Comments

    Ничего не найдено.