【发布时间】:2014-04-20 11:45:22
【问题描述】:
我一直在尝试在 Internet 上找到一种解决方案,以便能够在设定的时间间隔内更新我的 $http json 请求,同时让它使用新数据更新我的绑定。
我已经看到一些使用 $timeout 的示例,但无法使其正常工作,只是想知道最好的方法是什么。还能够使用下拉的新数据更新视图是我似乎无法解决的问题,因为我无法提出新请求。
这是我当前的构建。
app.js 文件,这只是显示 json 的初始获取。
var myApp = angular.module('myApp', ['ngRoute']);
myApp.controller('MainCtrl', ['$scope', '$http',
function($scope, $http, $timeout) {
$scope.Days = {};
$http({
method: 'GET',
url: "data.json"
})
.success(function(data, status, headers, config) {
$scope.Days = data;
})
.error(function(data, status, headers, config) {
// something went wrong :(
});
}
]);
HTML 设置:
<ul ng-controller="MainCtrl">
<li class="date" ng-repeat-start="day in Days">
<strong>>{{ day.Date }}</strong>
</li>
<li class="item" ng-repeat-end ng-repeat="item in day.Items">
<strong>>{{ item.Name }}</strong>
</li>
</ul>
【问题讨论】:
-
我不明白你想达到什么目的。从您的示例中,您调用返回
Days对象的 http 异步调用。ngRepeat指令监听Days变化(有私人观察者)并显示新数据。有什么问题?谢谢, -
我从服务器请求的 json 数据一直在更新,我的印象是我需要设置一个超时函数来调用 $http 来获取更新的 json 数据,然后更新当前观点。也许我对角度的工作方式仍然有些误解。我很抱歉。
-
据我了解,您希望在循环 http 中运行一些延迟,对吧?
-
是的,就像一个投票者。每 x 秒请求一次 json,然后在数据发生变化时更新视图。
-
使用 $interval 让功能在几分钟后生效......并且您的需求推送服务优于 $interval
标签: javascript json angularjs