当前位置: 首页 > 面试题库 >

如何获得ng-repeat中的上一个项目?

吕高雅
2023-03-14
问题内容

我有一个模板,仅当当前项目与上一个项目具有某些不同的字段时,才想在其中生成一些HTML。如何在ng-repeat中访问上一个项目?


问题答案:

你可以做类似的事情

<div ng-app="test-app" ng-controller="MyController">
    <ul id="contents">
      <li ng-repeat="content in contents">
          <div class="title">{{$index}} - {{content.title}} - {{contents[$index - 1]}}</div>
      </li>
    </ul>
</div>

JS

var app = angular.module('test-app', []);

app.controller('MyController', function($scope){
    $scope.contents=[{
        title: 'First'
    }, {
        title: 'Second'
    }, {
        title: 'Third'
    }]
})

演示:小提琴

注意: $index是针对指令数组的,它可能与作用域数组不同。使用内联变量访问正确的数组。

<li ng-repeat="content in (correctContents = (contents | orderBy:'id'))">
  {{ correctContents[$index - 1] }} is the prev element
</li>

如果您筛选或订购,则为contents[$index] != content



 类似资料:
  • 问题内容: 我正在尝试使用数组来过滤并在列表中显示信息。为此,我使用了inbuild 方法。 但是我遇到了错误。 这是我的尝试(我通过过滤) 现场演示 问题答案: AngularJS 默认不包含过滤器。您可以使用angular- filter中的 那个。只包含JavaScript 并在您的应用中添加依赖项: 您的代码应立即生效!我编辑了您的Plunker,使其正常工作。

  • 问题内容: 我正在开发一个页面,我需要在其中显示一些框(使用),其中包含频道信息以及显示位置(城市)。 我面临的问题是当我重复第二遍时: 这应该获得第一个ng-repeat的$ index值,并使用显示频道的位置创建一个新数组。它确实做到了。但是,当我使用此数组应用第二个ng- repeat时,它无法正常工作。 说我的html看起来像这样(PS:我需要使用索引值而不是因为我将这些框放到列中) JS

  • 问题内容: 我想跳过ng-repeat中的第一项 它不起作用,这里有什么问题吗? 我知道我可以使用ng-if,ng-show来隐藏东西,但是我无法理解为什么在这种情况下过滤器在1.3.x中不起作用。 谢谢。 问题答案:

  • 问题内容: 我正在尝试使用条件将项目分组为ng-repeat。 一个示例条件是将所有元素分组为同一小时。 数据: “时间”字段实际上是一个时间戳记(1399372207),但是使用准确的时间,示例输出将更易于理解。 我正在使用ng-repeat列出这些项目: 还尝试了: 有效输出为: 如果没有针对我的问题的简单解决方案,我的最后选择是将数据分组,然后将其分配给ng-repeat中使用的作用域变量。

  • 我有一个项目(div)在ng重复,每个项目有200像素的高度。如何获取相对于窗口的位置。如果到顶部窗口的距离低于100px-i,则应隐藏此元素。

  • 问题内容: 是否可以实现这样的代码:- 我有两个数组,我想在单行中显示它们。 PS:我不要求语法。我正在寻找实现这一目标的逻辑 谢谢 就像:-“ http://jsfiddle.net/6ob5bkcx/1/ ” 问题答案: 您应该在控制器中而不是在视图中执行此操作。将dataValues映射到键/值对对象,并使用索引引用values数组。假定每个数据键都有一个对应的值键。 控制器: 视图: