我想在每次延迟2秒后将数据推入数组。
//工作代码
$scope.GetData = function(){
DataFactory.GetCategories()
.success(function(data,status){
$scope.TheArray.push(data);
})
}
//这不起作用。 html中没有显示数据
$scope.GetData = function(){
DataFactory.GetCategories()
.success(function(data,status){
setTimeout(function() {
$scope.TheArray.push(data);
}, 2000);
})
}
修改
$scope.GetData = function(){
DataFactory.GetCategories()
.success(function(data,status){
$timeout(function () {
$scope.ChatHistory.push(JSON.parse(JSON.parse(data)));
}, 3000);
})
}
答案 0 :(得分:2)
使用$ timeout而不是setTimeout,它会正常运行。使用setTimeout时,你必须使用$ scope。$ apply来传播你对视图/模型的更改,但是$ timeout为你做了那么神奇,所以你不必担心它。
有关$ timeout here
的更多信息编辑: 您必须添加$ timeout作为依赖项,如下所示
angular.module('myApp').controller('MyController', function($timeout) {
$scope.GetData = function(){
DataFactory.GetCategories()
.success(function(data,status){
$timeout(function () {
$scope.ChatHistory.push(JSON.parse(JSON.parse(data)));
}, 3000);
})
}
})