2015-07-04 60 views
1

我有这个代码加载页面加载时的内容, 现在我想知道如何通过点击按钮来重新加载内容。 你能告诉我怎么用它做例子吗?Angularjs如何重新加载内容

Javascript代码:

.controller('InterNewsCtrl', function($scope, NewsService) { 
 

 
$scope.events = []; 
 
    
 
    $scope.getData = function() { 
 
    NewsService.getAll().then(function (response) { 
 
    $scope.events = response; 
 
      
 
     
 
    }), function (error) { 
 
     
 
     
 
    } 
 
    
 
    }; 
 
    
 
    
 
$scope.getData(); // load initial content. 
 

 
})
Html code: 
 

 
<ons-toolbar fixed-style> 
 
     <div class="left"> 
 
     <ons-back-button>Voltar</ons-back-button> 
 
     </div> 
 

 
     <div class="right"> 
 
     <ons-toolbar-button><ons-icon icon="ion-android-refresh"></ons-icon></ons-toolbar-button> 
 
     </div> 
 

 
     <div class="center">Internacional</div> 
 
    </ons-toolbar>

+1

重新加载整个页面? ''location.reload()' – dfsq

+0

如果你想重载路由,那么应该使用'$ route.reload()' –

+0

我的意思是重新加载内容 – jamil

回答

1

我觉得你问如何只检索新事件从后端。如果这是正确的,则不需要重新加载整个页面。

您已经有了一个名为getData的函数,它可以通过您的服务检索您的数据。假设你的服务不缓存数据,只需从你的按钮调用getData:

<ons-toolbar-button ng-click="getData()"><ons-icon icon="ion-android-refresh"></ons-icon></ons-toolbar-button> 

P.S.如果您确实在您的服务中将缓存设置为true,则可以使用$cacheFactory.get('$http').removeAll();删除缓存的数据。

+0

谢谢大家的帮助 – jamil

+0

不客气。祝你好运! – jme11

0

对于角的js重新加载相同页面,而不回发

如果你打电话$route.reload()先解除模板缓存该URL没有从$templateCache删除它,它将从缓存中获取它并且不会获取最新内容

尝试下面的代码

$scope.getdata=function() 
{ 
    var currentPageTemplate = $route.current.templateUrl; 
    $templateCache.remove(currentPageTemplate); 
    $route.reload(); 
} 

,并称呼其为以下

<input type="button" ng-click="getdata();" value ="refresh"/> 

希望这将有助于

请reffer this

+0

似乎有效检查[这](http://kcdipesh.com.np/improve-your-ionicframework-performance-with-template-caching/)'离子(0.9.26)'支持templatecache –

+0

我意识到OP是使用无论如何,温泉都不是离子。不过,我不明白你的建议。已经有一个由OP定义的$ scope.getData函数 - 似乎也有$ scope.getdata的混淆。 – jme11

+0

我只是改变它,例如,你将如何重新加载页面 –