AngularJS对象[Object Object]没有方法';追加儿童';

AngularJS对象[Object Object]没有方法';追加儿童';,angularjs,Angularjs,我试图创建一个简单的条形图,但是在将条形图附加到DOM时,我遇到了这个错误 对象[Object Object]没有方法“appendChild” $rootScope.drawChart=函数(数据、选择器、填充){ var max=Math.max.apply(数学,数据); var chart=angular.element(document.getElementById(“chartxx”); var barwidth=((图表偏移宽度-(数据长度-1)*填充-(数据长度)*10)/数据长

我试图创建一个简单的条形图,但是在将条形图附加到DOM时,我遇到了这个错误

对象[Object Object]没有方法“appendChild”

$rootScope.drawChart=函数(数据、选择器、填充){
var max=Math.max.apply(数学,数据);
var chart=angular.element(document.getElementById(“chartxx”);
var barwidth=((图表偏移宽度-(数据长度-1)*填充-(数据长度)*10)/数据长度);
var sum=data.reduce(函数(pv,cv){return pv+cv;},0);
左向量=0;
用于(数据中的var i){
var newbar=document.createElement('div');
newbar.setAttribute(“类”、“条”);
newbar.style.width=barwidth+“px”;
newbar.style.height=((数据[i]/max)*100)+“%”;
newbar.style.left=左+“px”;
控制台日志(图表);
元素(document.getElementById(“chartxx”)).appendChild(newbar);
左+=(条形宽度+填充+10);
}
}
var值=[85,95120100200230230,60320,233433434,45,23,23];
$rootScope.drawChart(值“#chartxx2”,5);

angular.element不包含方法appendChild

您可以尝试:

chart.append(newbar);

angular.element不包含方法appendChild

您可以尝试:

chart.append(newbar);
appendChild()
是本机HTML对象固有的方法,也称为
document.getElementById
的结果。当您将该HTML对象赋给
angular.element
时,它将成为一个jQuery对象。jQuery对象有一个类似的方法,名为
append()

因此,您可以执行
document.getElementById(“chartxx”).appendChild(newbar)
angular.element(document.getElementById(“chartxxx”).append(newbar)

这应该可以回答你的问题,但我不禁要问自己:当你使用AngularJS时,为什么会这样做

编辑 好的,那么我在你的位置上会做些什么(如果我绝对不能使用外部库,因为使用外部库处理图表是我通常会做的事情)。我建议您在此处查看并尝试理解
ng repeat
的工作原理,并尝试将其应用到您的案例中。

appendChild()
是本机HTML对象固有的方法,也称为
document.getElementById
的结果。当您将该HTML对象赋给
angular.element
时,它将成为一个jQuery对象。jQuery对象有一个类似的方法,名为
append()

因此,您可以执行
document.getElementById(“chartxx”).appendChild(newbar)
angular.element(document.getElementById(“chartxxx”).append(newbar)

这应该可以回答你的问题,但我不禁要问自己:当你使用AngularJS时,为什么会这样做

编辑
好的,那么我在你的位置上会做些什么(如果我绝对不能使用外部库,因为使用外部库处理图表是我通常会做的事情)。我建议您在这里查看并尝试理解
ng repeat
的工作原理,并尝试将其应用到您的案例中。

1。您已经有了chart变量,可以使用chart代替这个line angular.element(document.getElementById(“chartxx”)).appendChild(newbar);只是:chart.appendChild(newbar);1.您已经有了chart变量,可以使用chart代替这个line angular.element(document.getElementById(“chartxx”)).appendChild(newbar);只是:chart.appendChild(newbar);我正在尝试创建一个条形图,并附加每个条形图。如果我使用AppEnter(),条形图就不会显示出来,也就是说,没有一个条形码看起来是如何让AppDebug在角度内工作的。如果你想以角度的方式来做,你应该考虑填充一个数组的数组,然后在HTML端做一个NG重复。这需要一些测试时间,但我会在得到一个工作示例后立即更新我的答案。我正在尝试创建一个条形图,并动态附加每个条形图。如果我使用append(),则不会显示条形图,即,似乎没有附加任何条形图。知道如何让appendChild在角度范围内工作吗?如果您想以角度方式执行此操作,您应该考虑填充一个数组,然后在HTML一侧进行NG重复。这需要一些测试时间,但我会在得到一个工作示例后立即更新我的答案。如果我这样做,则不会显示条形图,即不会附加条形图。在JSFIDLE中,如果我将appendChild更改为append也会停止工作,需要appendChild工作…如果我这样做,则不会显示条形图,即不会附加条形图…在JSFIDLE中,如果我将appendChild更改为append也停止工作,则需要appendChild工作。。。