在Drupal模块中调用D3.js对象的正确方法

时间:2018-03-28 22:15:05

标签: javascript d3.js drupal-7

我正在尝试使用D3和Drupal 7.x来可视化网络,我不知道在我的js文件中引用D3的正确方法是什么。

到目前为止,我可以构建json并使用render数组将其传递给我的js脚本(并在控制台中显示),但后来我无法调用D3.js:

Uncaught ReferenceError: d3 is not defined

到目前为止,这是我的js代码:

(function($){
    Drupal.behaviors.mymodule = {
        attach : function(context, settings) {
            if(Drupal.settings.mymodule.graph_json !== ''){
                // visualize the json
                console.log(Drupal.settings.mymodule.graph_json);
                // create the newtork
                d3.json(Drupal.settings.mymodule.graph_json, function (error, json) {
                if (error){
                    return console.warn(error);
                }
                });
            }
        }
    };
}(jQuery));

我应该在数组中添加引用吗?或者由于D3.js位于sites / all / libraries / d3中,那么有一种常用的方法可以调用它吗?

1 个答案:

答案 0 :(得分:0)

根据你问题底部的陈述:

  

我应该在数组中添加引用吗?或者由于D3.js位于sites / all / libraries / d3中,那么有一种常用的方法可以调用它吗?

您已将d3.js文件放在错误的目录sites/all/libraries/d3.js中。该文件应位于正确的目录中,您可以在下面看到截图。

按照以下步骤操作:

  • 下载D3 library
  • sites/all/libraries/d3/
  • 中的摘录
  • 确保d3.js文件位于正确的目录sites/all/libraries/d3/d3.js

<强>截图:

enter image description here

之后,如果您发现其他错误Uncaught TypeError: Cannot read property 'linear' of undefined,则应阅读my answer

这适合我。

我希望这会对你有所帮助。