如果我在Angularjs中第二次单击搜索按钮,API将显示空值

时间:2016-12-03 13:43:36

标签: angularjs api

我正在研究角度。 我正在为前端工作并将post方法的API集成到搜索条件中,除此之外一切正常。 当我第一次单击搜索按钮时,我按照要求获取表中的数据,但如果我第二次单击该按钮而没有刷新页面,则数据显示空值并显示未找到结果。

这是我正在使用的功能:

  $scope.generate = function() {
  $scope.searchResults = false
  $scope.showLoader = true
  reportService.search($scope.query).success(function(data) {
    $scope.query = data
    console.log(data);
    $scope.showLoader = false
    setTimeout(function() {
      //window.scroll(0, document.body.scrollHeight)
      $('html, body').animate({
        scrollTop: $(document).height()
      }, 'slow');
    }, 200);
    $scope.results = data
    if ($scope.results.length > 0) {
      $scope.searchResults = true
      _.forEach($scope.results.entities, function(obj) {
        console.log("hi");
        obj.isChecked = false;
      });
      console.log("hi1");
      $scope.view_data = $scope.results.slice($scope.skip, $scope.items + $scope.skip);

      $scope.totalItems = $scope.results.length;
      console.log(data);

      $scope.results = data;


    } else {
      $scope.searchResults = false
      notificationFactory.warning('No results Found')
      $scope.showLoader = false
    }

  }).error(function(data) {
    notificationFactory.warning('Error Searching Reports')
    console.log(data);
  })


}

我是一个有角度的新蜜蜂,所以任何人都可以帮助我 如果有人帮我解决这个问题,那将非常有帮助。

1 个答案:

答案 0 :(得分:0)

reportService.search($scope.query)行中,您使用$scope.query,然后立即用$scope.query = data;覆盖此变量。

此外,与问题无关。不要在angular中使用类似jQuery的操作:

setTimeout(function () {
  //window.scroll(0, document.body.scrollHeight)
  $('html, body').animate({
    scrollTop: $(document).height()
  }, 'slow');
}, 200);

您可以通过角度动画https://docs.angularjs.org/guide/animations

实现此操作