对每个<李>在Angular中的ng重复列表中
Apply unique styles to each <li> in an ng-repeat list in Angular
我对angular很陌生,我很难理解如何"以angular的方式"处理某些事情。请原谅我在这篇文章中的无知。
我目前有6个列表项,它们是通过点击数据源并使用ng-repeat
创建的。
<ul>
<li ng-repeat="vote in votes" ng-click="vote.Score = vote.Score + 1">
{{ vote.Id | covertToName }} has a score of {{ vote.Score }}
</li>
</ul>
每个列表项下面都有一个"进度条",它只是一个绝对定位的:after
psuedo元素。我的目标是在单击列表项时增加进度条的:after
psuedo元素的宽度,以直观显示每个元素的票数。
当用户单击列表项时,我需要一种方法将自定义样式(width:
)应用于ng-repeat
创建的每个列表项。例如,如果用户单击John Doe,并且他的Score当前为50,我需要他的进度条假设宽度为51px,并将分数像素宽度应用于所有其他列表项。
任何方向都将不胜感激。
谢谢!
编辑:我使用的是SCSS,无法控制JSON数据源
如果使用像SASS这样的CSS预处理器,则可以通过使用ng-class="progress"
轻松实现。CCD_ 7将保持类似于CCD_ 8的字符串。
SASS代码
$class-slug: progress !default
@for $i from 0 through 100
.#{$class-slug}-#{$i}:after
width: 0px + $i
会发射
.progress-0:after {
width: 0px;
}
.progress-1:after {
width: 1px;
}
...
.progress-100:after {
width: 100px;
}
您可以尝试以下
li:first-child:after { /*styles*/ }
li:second-child:after { /*styles*/ }
li:third-child:after { /*styles*/ }
li:fourth-child:after { /*styles*/ }
li:fifth-child:after { /*styles*/ }
li:sixth-child:after { /*styles*/ }
如果您需要基于值的精确像素,我认为类并没有真正的用处,因为您不知道什么元素需要什么样式。也许您可以为此使用内联样式,即使这不是最佳实践。
示例:
<ul>
<li ng-repeat="vote in votes" ng-click="vote.Score = vote.Score + 1">
<span style="width:{{vote.score}}px;>{{ vote.Id | covertToName }} has a score of {{ vote.Score }}</span>
</li>
</ul>
mm。。u可以在对象投票中创建attrib,如下所示:
var votes = [{Id:0,Score:0,width:"first"},{Id:1,Score:0,width:"second"},{Id:2,Score:0,width:"third"}];
然后你可以使用ng类在每个li中做一个独特的样式:
<ul>
<li ng-repeat="vote in votes" ng-class="vote.width" vote.ng-click="vote.Score = vote.Score + 1">
{{ vote.Id | covertToName }} has a score of {{ vote.Score }}
</li>
</ul>
并且需要定义以下样式:
.second {
width: 50%;
background:red;
}
.first {
width: 20%;
background: blue;
}
.third {
width: 30%;
background: orange;
}
相关文章:
- 在Angular JS中,预先填充ng中的下拉值repeat
- AngularJS.Filter in ng中的多个条件重复
- 为什么ng中的自定义指令在循环完成后重复运行
- 嵌套ng中的Angularjs单选按钮重复未选中
- 获取ng中的更新值重复Angular JS
- 验证嵌套在ng中的输入元素repeat也用于页面加载,而不仅仅用于更改
- 打破ng中的字符数组,重复并设置每个字符自己的输入标记
- ng中的Angularjs函数重复调用过多次
- Angular:循环并显示从ng中的特定$index开始的所有值
- 使用AngularJS grag$在ng中的第一个项目重复,并使用它在页面上以其他形式打开项目信息
- 使用存储的颜色设置ng中的动态背景颜色重复
- AngularJS-如何在我的javascript解析之前让ng中的项重复存在
- 获取ng中的html元素repeat angular js
- 如何通过$index值来获取ng中的元素repeat
- 如何使ng中的每个指令重复以共享同一个ng模型
- orderBy数组Angular ng中的项值重复
- 在每4列之后的行中重复进行ng中的排序
- 基于下拉列表更新ng中的值重复
- 将ng中的值作为字符串重复传递
- 在ng中的指令中调用全局函数