2015-07-04 92 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

我只是改變它,例如,你將如何重新加載頁面 –