列出 refresh/reload 个模板
List refresh/reload template
我是 ionic 的新手,面临以下问题:我必须在 1 分钟和 1 分钟内加载和重新加载我的模板,第一次没问题,但是当从服务器获取记录的功能是再次调用,它不会清理模板,只是再次添加记录,所以如果我在服务器上只有一条记录,它会在第一分钟显示两条,第二分钟显示三条,然后依次。
我已经尝试过:cache=false、window.reload、state.reload、state.go 和许多其他尝试但没有给出我需要的结果,因为我只需要列表被替换而不是添加。
我的代码:
list = function () {
$http.post(G.URL + 'page.jsp')
.then(function (response) {
$scope.total = response.data.records.length;
$scope.items = response.data.records;
$scope.counter = 1;
}, function (error) { $scope.items = "Nothing"; });}
$interval(function () {
$scope.counter += 1;
if ($scope.counter > 59) {
$scope.counter = 1;
list();
//$ionicHistory.clearCache([$state.current.name]).then(function () { $state.reload(); }); } }, 1000);
提前致谢
发生的一件事是您没有看到更新,因为您没有消化新范围。 $scope.$apply() 和 $timeout() 运行 一个摘要循环,以便范围可以刷新并显示新值。 $http 调用需要时间 return 到客户端,如果您使用延迟值更新范围,您应该 运行 一个摘要周期。我也清理了你的代码。
.controller('Ctrl', function($scope, G, $interval, $http, $timeout) {
// always initialize your scope variables
angular.extend($scope, {
total: 0,
items: []
});
var list = function () {
$http.post(G.URL + 'page.jsp')
.then(function (response) {
angular.extend($scope, {
total: response.data.records.length,
items: response.data.records
});
$timeout(); // this is used to reload scope with new delayed variables
}, function (err) {
console.error(JSON.stringify(err));
});
};
// call list every 1000 milliseconds * 60 = 1 minute
$interval(list, 1000 * 60);
// call list on page load so you don't wait a minute
list();
});
我是 ionic 的新手,面临以下问题:我必须在 1 分钟和 1 分钟内加载和重新加载我的模板,第一次没问题,但是当从服务器获取记录的功能是再次调用,它不会清理模板,只是再次添加记录,所以如果我在服务器上只有一条记录,它会在第一分钟显示两条,第二分钟显示三条,然后依次。
我已经尝试过:cache=false、window.reload、state.reload、state.go 和许多其他尝试但没有给出我需要的结果,因为我只需要列表被替换而不是添加。 我的代码:
list = function () {
$http.post(G.URL + 'page.jsp')
.then(function (response) {
$scope.total = response.data.records.length;
$scope.items = response.data.records;
$scope.counter = 1;
}, function (error) { $scope.items = "Nothing"; });}
$interval(function () {
$scope.counter += 1;
if ($scope.counter > 59) {
$scope.counter = 1;
list();
//$ionicHistory.clearCache([$state.current.name]).then(function () { $state.reload(); }); } }, 1000);
提前致谢
发生的一件事是您没有看到更新,因为您没有消化新范围。 $scope.$apply() 和 $timeout() 运行 一个摘要循环,以便范围可以刷新并显示新值。 $http 调用需要时间 return 到客户端,如果您使用延迟值更新范围,您应该 运行 一个摘要周期。我也清理了你的代码。
.controller('Ctrl', function($scope, G, $interval, $http, $timeout) {
// always initialize your scope variables
angular.extend($scope, {
total: 0,
items: []
});
var list = function () {
$http.post(G.URL + 'page.jsp')
.then(function (response) {
angular.extend($scope, {
total: response.data.records.length,
items: response.data.records
});
$timeout(); // this is used to reload scope with new delayed variables
}, function (err) {
console.error(JSON.stringify(err));
});
};
// call list every 1000 milliseconds * 60 = 1 minute
$interval(list, 1000 * 60);
// call list on page load so you don't wait a minute
list();
});