首页 > 解决方案 > 使用 JavaScript 创建上一个和下一个按钮

问题描述

使用 AngularJS,我得到的数据以数组的形式出现,其中包含两个对象。我是新手,并试图解决这个问题。

data[
{
"something":"something1",
"something":"something1",
"something":"something1",
},
{
"something":"something2",
"something":"something2",
"something":"something2",
}
]

我想要做的是创建一个上一个和下一个按钮,当单击第一个对象时,它将变为第二个对象。我知道使用:

current = response.data[0];

会给我第一个数组对象。我试过这样的事情:

   var current = 1
  const getSessions = () => {
    loginService.getUser().then((response) => {
      var user_id = response.data.id;
      console.log("getUser returning this => ", response.data);
      loginService.getUserSessions(user_id).then((response) => {
        current = response.data[0];
        $scope.sessions = response.data;
      })
    })
  };

 getSessions();

  $scope.nextPage = function() {
    current++;
    getSessions();
}
$scope.prevPage = function (){
    if(current > 1){
        current--;
    getSessions();    
    }
}

但就像我说的那样,我不确定该怎么做。

标签: javascriptarraysangularjsobject

解决方案


我相信您需要增加/减少您的计数器,然后将 current 设置为您的会话数组的 currentIndex。我没有测试这段代码,但我希望这会有所帮助。

    var current;
    var currentIndex = 0;

    const getSessions = () => {
     loginService.getUser().then((response) => {
      var user_id = response.data.id;
      console.log("getUser returning this => ", response.data);
      loginService.getUserSessions(user_id).then((response) => {
        $scope.sessions = response.data;
        current = $scope.sessions[0]
      })
     })
    };

    getSessions();

    $scope.nextPage = function() {
      if ( currentIndex < ($scope.sessions.length - 1) ) {
        currentIndex++;
        current = $scope.sessions[currentIndex]
      }
    }

    $scope.prevPage = function (){
      if ( currentIndex > 0 ) {
        currentIndex--;
        current = $scope.sessions[currentIndex]
      }
    }

推荐阅读