我尝试使用指令渲染2个图表。该图表需要一个唯一的目标div来呈现;然而,似乎我的指令是生成控件的单个实例而不是第二个实例。我是否需要通过父作用域传递id?我尝试过id =" graph _ {{$ id}}"的实现,但这不起作用。
指令代码段:生成随机数并分配给目标div代码
unsat
HTML:添加指令的两个实例
var num = Math.floor((Math.random() * 999999999) + 1);
return {
restrict: 'AE', // E = Element, A = Attribute, C = Class, M = Comment
replace: true,
scope: { //binds scope
val: '='
},
template: '<div id="graph_' + num + '"></div>',
link: function (scope, element, attrs) {
var dcPie = dc.pieChart("#graph_" + num);
生成的HTML:只有一个控件呈现,第二个控件呈现为空且具有相同的唯一ID
<my-dc-graph val="graphPie"></my-dc-graph><br>
<my-dc-graph val="graphPie2"></my-dc-graph>
答案 0 :(得分:0)
如果你这样称它,Math.Random并不是真正随机的,因为它是基于你的时间戳。尝试在Math.Random()之间加一些额外的几毫秒时间,以确保它们以不同的值播种,或者只是确保从外部确定随机数。