我正在尝试刷新后退按钮上的页面以获取文章列表的新数据。更具体地说,我有一篇文章列表和文章页面,我可以选择喜欢一篇文章。当用户喜欢文章页面上的文章时,如果它点击后退按钮,则文章列表页面上的类似图标将不会使用新状态刷新。我尝试过单击后退按钮,然后再次获取数据,但图标不会改变。我在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);
})
})
};
但由于该功能在文章控制器中,因此无法刷新首页上的数据。如何从具有不同控制器的页面刷新首页控制器中的数据?
答案 0 :(得分:2)
$stateProvider.state('myState', {
cache: false,
url : '/myUrl',
templateUrl : 'my-template.html'
})
尝试在您的州内添加cache : false
,以便在输入时重新加载状态
答案 1 :(得分:1)
尝试以下方法之一:
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();
});
<ion-view cache-view="false" view-title="My Title!"> </ion-view>