Javascript AngularJS和dojox.charting-'nodeType'为null“

Javascript AngularJS和dojox.charting-'nodeType'为null“,javascript,angularjs,dojo,angularjs-directive,Javascript,Angularjs,Dojo,Angularjs Directive,我正试图根据当前的数据模型,用Dojo中的不同图形填充一个repeating ng repeat div 当我的代码运行时,我得到一个错误:无法读取null的属性'nodeType' 我相信这是因为dojo试图渲染到一个尚未实际创建的div中,它存在于内存中,AngularJS可以使用它,但尚未在dom中创建 这是我正在使用的代码 如何确保已创建元素 function GetBarChart(elementName) { require(["dojox/charting/Chart", "doj

我正试图根据当前的数据模型,用Dojo中的不同图形填充一个repeating ng repeat div

当我的代码运行时,我得到一个错误:无法读取null的属性'nodeType'

我相信这是因为dojo试图渲染到一个尚未实际创建的div中,它存在于内存中,AngularJS可以使用它,但尚未在dom中创建

这是我正在使用的代码

如何确保已创建元素

function GetBarChart(elementName)
{
require(["dojox/charting/Chart", "dojox/charting/axis2d/Default", "dojox/charting/plot2d/StackedAreas", "dojox/charting/themes/Wetland" , "dojo/ready"],
  function(Chart, Default, StackedAreas, Wetland, ready)
 {

ready(function()
{
  alert(elementName);
  var c = new Chart(elementName);
  c.addPlot("default", {type: StackedAreas, tension:3})
    .addAxis("x", {fixLower: "major", fixUpper: "major"})
    .addAxis("y", {vertical: true, fixLower: "major", fixUpper: "major", min: 0})
    .setTheme(Wetland)
    .addSeries("Series A", [1, 2, 0.5, 1.5, 1, 2.8, 0.4])
    .addSeries("Series B", [2.6, 1.8, 2, 1, 1.4, 0.7, 2])
    .addSeries("Series C", [6.3, 1.8, 3, 0.5, 4.4, 2.7, 2])
    .render();
});
});

}

angular.module('myApp')
.directive('myWidget', function() 
{
return {
 link:function(scope, element, attrs)
 {      
    element.id = scope.widget.id;
    GetBarChart(element.id );
    console.log(element);
  }
};
});

我对AngualJS还是新手,但解决方案是在指令html中设置div的id,而不是在link函数中设置它

<div id ="{{widget.id}}" ></div>
这似乎消除了订购问题


但是我想知道是否还有其他更好的方法。

元素由jQuery包装,如果您想获得id,您应该这样写:

element[0].id

在这个问题中没有提到jQuery,我在代码中也没有看到它的证据。
element[0].id