如何在Directive中生成随机div id?

时间:2017-04-06 14:59:27

标签: angularjs angularjs-directive

我尝试使用指令渲染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>

1 个答案:

答案 0 :(得分:0)

如果你这样称它,Math.Random并不是真正随机的,因为它是基于你的时间戳。尝试在Math.Random()之间加一些额外的几毫秒时间,以确保它们以不同的值播种,或者只是确保从外部确定随机数。