如何正确使用ng使用循环时重复

时间:2014-08-09 13:23:37

标签: javascript angularjs

我正在尝试使用以下方法为列表中的日期着色:

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

1 个答案:

答案 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};
        };)};

(注意:我没有在浏览器中查看此内容,只是调整了您的代码以显示该概念)