我是AngularJS的新手。我正在测试解决方案,以便仅在收到服务器的响应后显示部分视图(这是一种好方法吗?)。
为了更好地解决解析如何工作,我想在服务中添加一个暂停(5秒),它使用$ resource来获取部分视图显示的数据。在Java中我会使用方法sleep。在执行以下代码行之前(在我的服务中使用$ resource之前),是否有一种简单的方法可以使用AngularJS等待5秒?
答案 0 :(得分:1)
这样的事情会等待:
function ExampleController($scope, $timeout, $q) {
function get() {
var request = $q.defer();
console.log('Waiting...');
$timeout(function() {
request.resolve({data:1});
}, 5000);
return request.promise;
}
get().then(function(response) {
console.log(response.data);
});
}
基本上你设置了一个$q.defer()
,然后在你想要的所有内容被加载时解析它(或者在超时完成的情况下)。然后使用then
函数对您解析的数据执行某些操作。
答案 1 :(得分:0)
像这样创建一个工厂:
function fakeResource($q, $timeout) {
return {
get: function() {
var request = $q.defer();
$timeout(function() {
request.resolve({data:1});
}, 5000);
return request.promise;
}
}
}]);
app.factory('fakeResource', fakeResource);
然后在$ routeProvider的解析中:
customers: function(fakeResource) {
return fakeResource.get();
}