繁体   English   中英

单击时,如何在AngularJS中逐个循环JSON

[英]On click How can I cycle through JSON one by one in AngularJS

创建我的第一个指令作为角度练习—或多或少地制作一个自定义轮播,以学习指令的工作方式。

我已经用一些JSON数据建立了一个Factory:

directiveApp.factory("Actors", function(){
var Actors = {};
Actors.detail = {
    "1": {
      "name": "Russel Brand",
      "profession": "Actor",
      "yoga": [
        "Bikram",
        "Hatha",
        "Vinyasa"
      ]
    },
    "2": {
      "name": "Aaron Bielefeldt",
      "profession": "Ambassador",
      "yoga": [
        "Bikram",
        "Hatha",
        "Vinyasa"
      ]
    },
    "3": {
      "name": "Adrienne Hengels",
      "profession": "Ambassador",
      "yoga": [
        "Bikram",
        "Hatha",
        "Vinyasa"
      ]
    }
  };
  return Actors;
});

和一个演员控制器:

function actorsCtrl($scope, Actors) {
    $scope.actors = Actors;
  }

并且正在使用ng-repeat显示模型数据:

<div ng-controller="actorsCtrl">
  <div ng-repeat="actor in actors.detail">
    <p>{{actor.name}} </p>
  </div>
      <div ng-click="next-actor">Next Actor</div>
</div>

1)如何仅在我的角度模型actors.detail的第一个索引中显示演员名称?

2)如何正确创建单击事件,该事件将获取以下索引并替换先前的actor.name

用户流:

  • 罗素品牌可见
  • 单击下next-actor ->拉塞尔·布兰德(Russell Brand)的名字被替换为亚伦·比勒费尔特(Aaron Bielefeldt)

由于您只需要当前用户,因此ng-repeat并不是您要使用的,因为它将用于数据中的每个元素。

您可能希望在范围内跟踪正在查看的索引,并对其进行递增。

<div ng-controller="TestController">
    {{data[current].name}}
    <div ng-click="Next();"> NEXT! </div>
</div>

我们还在控制器中的哪个位置进行了设置,其中数据是您的参与者:

$scope.current = 0;
$scope.Next = function() {
    $scope.current = ($scope.current + 1) % $scope.data.length;
};

这是完成的小提琴

我将更改服务以返回单个actor并在控制器中维护索引。 这样 这是一个不完整的解决方案-您需要注意循环等...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM