我正在尝试使用以下方法为列表中的日期着色:
HTML
<div id="list" ng-controller = "listContr as ilist">
<ul>
<li ng-repeat = "item in ilist.items">
<p class="date-{{ilist.dateColor()}}">{{item.dueDate| date: 'dd.MM.yyyy HH:mm'}}</p>
</li>
</ul>
</div>
的javascript
app.controller ('listContr', function () {
this.items = tasks;
this.dateColor = function () {
for (var i = 0; i <= tasks[i].length; i++) {
if (currDate > tasks.dueDate) {return 1} esle {return 2};
}
};)};
但它永远不会返回2(或者只是在1中再次着色的日期)。我想ngRepeat使项继承以前的属性。所以我不知道如何解决它。
答案 0 :(得分:0)
更改函数的签名以从ngRepeat中获取项目,这样您的函数就会知道您要为哪个项目着色。
<div id="list" ng-controller = "listContr as ilist">
<ul>
<li ng-repeat = "item in ilist.items">
<p class="date-{{ilist.dateColor(item)}}">{{item.dueDate| date: 'dd.MM.yyyy HH:mm'}}</p>
</li>
</ul>
</div>
然后你也可以摆脱函数中的循环
app.controller ('listContr', function () {
this.items = tasks;
this.dateColor = function (item) {
if (currDate > item.dueDate) {return 1} esle {return 2};
};)};
(注意:我没有在浏览器中查看此内容,只是调整了您的代码以显示该概念)