刷新后退按钮上的页面,角度/离子

Refreshing page on a back button in angular/ionic

本文关键字:角度 离子 按钮 刷新      更新时间:2023-09-26

我正在尝试刷新后退按钮上的页面以获取文章列表的新数据。更具体地说,我有一个文章列表和文章页面,在它们上我都可以选择喜欢一篇文章。当用户喜欢文章页面上的文章时,如果点击后退按钮,文章列表页面上的"赞"图标将不会刷新新状态。我尝试在单击后退按钮时创建一个函数,然后再次获取数据,但图标没有改变。我在console.log上获得的数据是新数据,如果用户喜欢该文章,我得到的值是正确的like=1,但图标没有改变。这是我的代码:

我在首页控制器中收到这样的文章:

ArticleService.all().then(function(data){
    $scope.articles = data;
  })

在我的文章页面html中,我有一个后退按钮链接:

<a ng-click="refresh()"></a>

在我的文章列表中,我检查我有哪个值喜欢,然后根据该值显示图标:

<a ng-if="article.like == 1" ng-click="like(article)" class="subdued">
              <img class="social-images" src="icons/heart.svg"/> Lik
            </a>
            <a ng-if="article.like == 0" ng-click="like(article)" class="subdued">
              <img class="social-images" src="icons/heart-outline.svg"/> Lik
            </a>

这是我在文章控制器中的函数:

$scope.refresh = function (){
    return $state.go('main.front').then(function(state) {
      ArticleService.all().then(function(data){
        $scope.articles = data;
        console.log(data);
      })
    })
  };

但由于该功能位于文章控制器中,因此无法刷新首页上的数据。如何从具有不同控制器的页面刷新首页控制器中的数据?

$stateProvider.state('myState', {
   cache: false,
   url : '/myUrl',
   templateUrl : 'my-template.html'
})

尝试在您的状态中添加cache : false以在输入时重新加载状态...

尝试以下方法之一:

1.

 $scope.$on('$ionicView.beforeEnter', function () {
           $scope.refresh();
        });
$scope.refresh = function (){
        return $state.go('main.front').then(function(state) {
          ArticleService.all().then(function(data){
            $scope.articles = data;
            console.log(data);
          })
        })
      };

阿拉伯数字。

 $scope.$on('$tateChangeSuccess', function () {
           $scope.refresh();
        });
  1. 这可能是缓存问题。所以添加,
<ion-view cache-view="false" view-title="My Title!">
  </ion-view>