Javascript 每次打开页面时AngularJS加载服务

Javascript 每次打开页面时AngularJS加载服务,javascript,angularjs,Javascript,Angularjs,我正在收件箱中加载邮件列表,列表中最近的5封邮件。 我刷新页面时遇到问题,因此页面始终显示列表中最新的5条消息 消息页面刚在服务第一次打开时调用了该服务。我如何回忆服务?对于像user这样的其他服务,我一直在使用$interval来更新$scope.data 是否可以在每次打开服务时召回服务 模板 <div class="list"> <ul ng-controller="MessagesCtrl"> <li ng-repeat="message in

我正在收件箱中加载邮件列表,列表中最近的5封邮件。 我刷新页面时遇到问题,因此页面始终显示列表中最新的5条消息

消息页面刚在服务第一次打开时调用了该服务。我如何回忆服务?对于像user这样的其他服务,我一直在使用$interval来更新$scope.data

是否可以在每次打开服务时召回服务

模板

<div class="list">
  <ul ng-controller="MessagesCtrl">
    <li ng-repeat="message in messages.data" id="message{{message.id}}"  class="item">
        <a href="#" class="messageIcon">{{message.user}}</a>  
  <p>{{message.title}}</p><a ng-click="deleteItem($index)">x</a>
    </li>
</ul>
控制器

angular
    .module('starter.controllers', [])
    .controller('MessagesCtrl', function($scope, Messages, $http) {

    Messages
        .getData($http)
        .then(function(data) {
            $scope.messages = data;
        });
});

您可以执行以下操作之一:

1) 定期在服务中使用$interval轮询getdata函数。然后在控制器中的$scope.messages上写一个手表,每次值更改时都会更新UI

2) 使用websocket始终保持数据的实时性。我不确定这是否是最简单的选择。甚至可能无法根据您期望的流量进行扩展


如果你对websockets不熟练,我个人会选择第一个选项

尝试发送一个带有get url的时间戳。你能详细说明一下吗@SudipPalI找到了一种方法来刷新$scope.data,方法是通过拉入刷新功能或单击按钮调用refresh function.Hmm。如果您同意用户操作来显示更新的数据,那么这将很好地工作。。但如果您希望始终显示实时数据。。没有用户操作。。。我想这是行不通的。它需要用户操作。请你看看我的新问题好吗。奇怪的是,我无法访问服务变量。
angular
    .module('starter.controllers', [])
    .controller('MessagesCtrl', function($scope, Messages, $http) {

    Messages
        .getData($http)
        .then(function(data) {
            $scope.messages = data;
        });
});