如何正确使用ngRepeat,同时使用循环for

how to properly use ngRepeat while using cycle for

本文关键字:循环 for ngRepeat 何正确      更新时间:2023-09-26

我想用这个给列表中的日期上色:

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使项目继承以前的属性。所以我不知道如何修复它

将函数的签名改为从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};
        };)};

(注意:我没有在浏览器中检查这个,只是调整了你的代码来显示这个概念)