所以我一直在使用angularjs和symfony开发应用程序。我试图每5000毫秒重复检索一次数据,所以我采用了" $ timeout"功能,以从服务器获取实时数据。
这是我的控制器代码:
<?php
session_start();
if (isset($_POST['eventsubmit'])) {
$eventname = $_POST['eventname'];
$venue = $_POST['venue'];
$date = $_POST['date'];
$name = $_POST['name'];
$eventname = mysqli_real_escape_string($conn, $_POST['eventname']);
$venue = mysqli_real_escape_string($conn, $_POST['venue']);
$date = mysqli_real_escape_string($conn, $_POST['date']);
$name = mysqli_real_escape_string($conn, $_POST['name']);
$sql = "UPDATE events SET eventname='$eventname' WHERE userid='2' ";
mysqli_query($conn, $sql);
header("Location: ../members.php?event=success");
exit();
} else {
header("Location: ../signup.php");
exit();
}
}
这是vue代码:
.controller('clientController', [ '$rootScope','$scope', 'Api' , 'toastr',
'$window', '$routeParams', '$filter' , '$timeout',
function($rootScope,$scope, Api ,toastr, $window, $routeParams, $filter ,
$timeout) {
$rootScope.myVar=true;
$scope.clients = [];
var retrieveItems = function () {
Api.getAllClients()
.then(function (result) {
console.log('result', result);
$scope.clients = result.data;
$timeout(retrieveItems, 5000);
}, function (error) {
console.log('error', error);
});
};
...
}])
我的问题是每当我删除&#34; retrieveItems&#34;功能一切正常。我得到了所有的客户端但是什么时候添加超时服务,所以我可以每隔5秒刷新注册的客户端...客户端不会加载vue但错误部分没有错误。有人可以告诉我究竟是什么问题可能..其他任何建议,使实时检索功能。提前致谢 。
答案 0 :(得分:2)
要每5000毫秒获取一次数据,您应该使用
$ interval service $interval
答案 1 :(得分:0)
首先,我认为您需要使用$ interval进行重复调用。 其次,您必须在角度范围内分配范围值,而不是像
这样的纯函数 var retrieveItems = function () { ... }
尝试使用,
$scope.retrieveItems = function () {...}
I think this wont be asking to $scope.apply()