使用 js 数据的离子刷新似乎不起作用
ionic refresh with jsdata doesnt seem to work
我的离子应用程序使用 jsdata 数据存储进行缓存 http://www.js-data.io/docs/home
.
我正在尝试使用 ion-refresher 指令在我的应用程序中实现下拉刷新功能。
doRefresh 似乎根本没有进行 Get 调用。
当我单击 Pull 刷新时,下面代码中的所有 console.log 消息都被执行。
但是,如果我查看“网络”选项卡,我根本看不到正在进行的 Get 调用。
没有数据被刷新,我也没有收到任何错误。
我不确定为什么会发生这种情况或我做错了什么。
我的代码:
HTML:
<ion-refresher
pulling-text="Pull to refresh..."
on-refresh="doRefresh()">
</ion-refresher>
控制器:
.controller('ProfileInfo', function($scope, Profile) {
$scope.load = function() {
$scope.error = undefined;
Profile.findAll().then(function(response) {
$scope.Profile = response[0];
}).catch(function(err) {
$scope.error = err;
});
};
$scope.load();
$scope.doRefresh = function() {
console.log("hi")
$scope.error = undefined;
$scope.Profile = [];
Profile.findAll().then(function(response) {
console.log($scope.Profile)
$scope.Profile = response[0];
console.log($scope.Profile)
console.log("Done")
}).catch(function(err) {
console.log("err", err)
$scope.error = err;
}).finally(function(){
console.log("in finally")
$scope.$broadcast('scroll.refreshComplete');
});
};
});
在您的 doRefresh
方法中,您需要将 bypassCache: true
传递给 findAll
全部以强制它尝试发出新请求,例如
var query = {};
var options = {
bypassCache: true
};
Profile.findAll(query, options).then(...);
阅读有关 behavior of DS#findAll
in JSData 2.x 的更多信息。
我的离子应用程序使用 jsdata 数据存储进行缓存 http://www.js-data.io/docs/home
.
我正在尝试使用 ion-refresher 指令在我的应用程序中实现下拉刷新功能。
doRefresh 似乎根本没有进行 Get 调用。
当我单击 Pull 刷新时,下面代码中的所有 console.log 消息都被执行。
但是,如果我查看“网络”选项卡,我根本看不到正在进行的 Get 调用。
没有数据被刷新,我也没有收到任何错误。
我不确定为什么会发生这种情况或我做错了什么。
我的代码:
HTML:
<ion-refresher
pulling-text="Pull to refresh..."
on-refresh="doRefresh()">
</ion-refresher>
控制器:
.controller('ProfileInfo', function($scope, Profile) {
$scope.load = function() {
$scope.error = undefined;
Profile.findAll().then(function(response) {
$scope.Profile = response[0];
}).catch(function(err) {
$scope.error = err;
});
};
$scope.load();
$scope.doRefresh = function() {
console.log("hi")
$scope.error = undefined;
$scope.Profile = [];
Profile.findAll().then(function(response) {
console.log($scope.Profile)
$scope.Profile = response[0];
console.log($scope.Profile)
console.log("Done")
}).catch(function(err) {
console.log("err", err)
$scope.error = err;
}).finally(function(){
console.log("in finally")
$scope.$broadcast('scroll.refreshComplete');
});
};
});
在您的 doRefresh
方法中,您需要将 bypassCache: true
传递给 findAll
全部以强制它尝试发出新请求,例如
var query = {};
var options = {
bypassCache: true
};
Profile.findAll(query, options).then(...);
阅读有关 behavior of DS#findAll
in JSData 2.x 的更多信息。