Angularjs如何重新加载内容

时间:2015-07-04 10:43:38

标签: angularjs onsen-ui

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

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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分: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();删除缓存的数据。

答案 1 :(得分:0)

用于在没有回发的角度Js中重新加载相同的页面

首先从模板缓存中删除该网址,如果您调用$route.reload()而不将其从$templateCache中删除,则会从缓存中获取该网址并且不会获取最新内容

尝试以下代码

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

并将其称为以下

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

希望这会有所帮助

请重新this