簡體   English   中英

在角度/離子的后退按鈕上刷新頁面

[英]Refreshing page on a back button in angular/ionic

我正在嘗試刷新后退按鈕上的頁面以獲取文章列表的新數據。 更具體地說,我有一篇文章列表和文章頁面,我可以選擇喜歡一篇文章。 當用戶喜歡文章頁面上的文章時,如果它點擊后退按鈕,則文章列表頁面上的類似圖標將不會使用新狀態刷新。 我嘗試過單擊后退按鈕,然后再次獲取數據,但圖標不會改變。 我在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);
          })
        })
      };

2。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM