Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为特定元素实现ng类?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何为特定元素实现ng类?

Javascript 如何为特定元素实现ng类?,javascript,angularjs,Javascript,Angularjs,我使用ng repeat来重复基于我正在提取的一些数据的相同svg图形。我想使用ng类向SVG的特定路径添加一个“活动”类。我为每个路径指定了一个ng类属性: ng-class="{active: shouldRingFillsBeActive}" 在我的javascript中,我使用类“ring fill”遍历所有路径,并将它们放入一个名为“rings”的数组中。现在我只想将某些路径指定为类“active”。如果我将$scope.shouldRingFillsBeActive设置为true,

我使用ng repeat来重复基于我正在提取的一些数据的相同svg图形。我想使用ng类向SVG的特定路径添加一个“活动”类。我为每个路径指定了一个ng类属性:

ng-class="{active: shouldRingFillsBeActive}"
在我的javascript中,我使用类“ring fill”遍历所有路径,并将它们放入一个名为“rings”的数组中。现在我只想将某些路径指定为类“active”。如果我将$scope.shouldRingFillsBeActive设置为true,则所有环都将具有活动类。例如:如果环[3]需要“active”类,我如何才能使ng类仅针对该元素为真

现在我正在使用attr,但它不起作用,因为视图还没有加载。现在我将使用$scope

以下是我的javascript:

for(var i in data) {
        var dataObject = data[i];
        var team = dataObject.team;

        var ringToHighlight = Math.floor((dataObject.average_score/maxScore)*totalRings); //round down

        var i = 0;

        var rings = [];
        var ringClass = 'path[data="overall"].ring-fill.'+team+':not(.ring-border)';
        var ring = $(ringClass);
        console.log(ring);


        ring.each(function(){
            rings.push($(this)[0]);
        });

        rings.reverse();


        while( i < ringToHighlight) {
            fillPath(i);
            i = i + 1;
        }

    }



    function fillPath(i) {
        if(i < ringToHighlight) {
            $scope.shouldRingFillsBeActive = true;
            var selectedRing = $(rings[i]);
            selectedRing.attr("class", "ring-fill active");
        }
    }
for(数据中的变量i){
var dataObject=数据[i];
var team=dataObject.team;
var ringToHighlight=Math.floor((dataObject.average_score/maxScore)*totalRings);//向下取整
var i=0;
var环=[];
var ringClass='path[data=“total”].ring fill.+team+':非(.ring border);
变量环=$(环类);
控制台日志(环);
ring.each(函数(){
环。推($(此)[0]);
});
环。反向();
while(i
看起来您已经在使用
selectedRing.attr(“class”,“ring fill active”)
,如果您只是删除
ng类
,我猜它会起作用。然而,我想补充一点,我希望这是在指令中完成的,而不是在控制器中完成的?@Sonaryr attr不起作用,因为它在创建类“环填充”之前就查找它。这就是我想使用$scope的原因。是否有一种方法可以使所选“环填充”的$scope.shouldRingFillsBeActive=true?为什么这应该在指令中而不是控制器中?