Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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 角度重复-每个元素的独特风格_Javascript_Html_Css_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Javascript 角度重复-每个元素的独特风格

Javascript 角度重复-每个元素的独特风格,javascript,html,css,angularjs,angularjs-ng-repeat,Javascript,Html,Css,Angularjs,Angularjs Ng Repeat,所以我的问题是,我在Angular中使用ng repeat,每个项目都需要有特定的风格 我重复并从包含名称和值的JSON创建不同的列表项。显示名称和值,但每个元素也有一个进度条。条的值(宽度)应取决于每个元素的值 这是一把小提琴,它展示了: 正如您在小提琴中看到的,该条的宽度为50%(在CSS中为默认值)。但是,例如第二个元素Karl的值为4,我希望条的宽度为40% 基本上,我想为每个元素做的是: $scope.bar_style = { 'width' : "(parts.value

所以我的问题是,我在Angular中使用ng repeat,每个项目都需要有特定的风格

我重复并从包含名称和值的JSON创建不同的列表项。显示名称和值,但每个元素也有一个进度条。条的值(宽度)应取决于每个元素的值

这是一把小提琴,它展示了:

正如您在小提琴中看到的,该条的宽度为50%(在CSS中为默认值)。但是,例如第二个元素Karl的值为4,我希望条的宽度为40%

基本上,我想为每个元素做的是:

$scope.bar_style = {
    'width' : "(parts.value)*10"
} 

我一直在尝试不同的策略,但老实说,我只是在黑暗中拍摄,这里有人知道如何在ngRepeat中设置某个元素的样式吗?

简单的就地样式计算:

<div ng-style="{'width': part.value*10+'%'}"></div>

这就是诀窍


简单就地样式计算:

<div ng-style="{'width': part.value*10+'%'}"></div>

这就是诀窍


另一种方式,尽管我认为帕维尔的方式更好


另一种方式,尽管我认为帕维尔的方式更好


您也可以使用以下解决方案

var myApp=angular.module('myApp',[]);
函数MyCtrl($scope){
$scope.parts=[
{name:“hello”,值:5},
{名称:“卡尔”,值:4},
{名称:“Ba”,值:3}
];
$scope.getStyle=函数(值)
{
var obj={
“背景色”:“绿色”,
“宽度”:parseInt(240/值)+“px”,
“高度”:“20px”
};
返回obj;
};
}
li.progress\u div{
宽度:350px;
左边距:50像素;
显示:表格单元格;
左边距:150像素;
}
李.进度分区.进度条{
边框:1px纯黑;
宽度:240px;
}

  • {{part.name} {{part.value}}

您也可以使用以下解决方案

var myApp=angular.module('myApp',[]);
函数MyCtrl($scope){
$scope.parts=[
{name:“hello”,值:5},
{名称:“卡尔”,值:4},
{名称:“Ba”,值:3}
];
$scope.getStyle=函数(值)
{
var obj={
“背景色”:“绿色”,
“宽度”:parseInt(240/值)+“px”,
“高度”:“20px”
};
返回obj;
};
}
li.progress\u div{
宽度:350px;
左边距:50像素;
显示:表格单元格;
左边距:150像素;
}
李.进度分区.进度条{
边框:1px纯黑;
宽度:240px;
}

  • {{part.name} {{part.value}}
<div ng-style="bar_style" class="width-{{part.value}}"></div>