离子视图不刷新API中的数据

时间:2016-06-29 13:29:33

标签: angularjs node.js express ionic-framework firebase-realtime-database

我们有一个Ionic app来轮询节点/表达式API。

当应用程序启动时,它会从API正确获取JSON数据。当我们更新数据并从Ionic应用程序再次获取数据时,我们仍然可以看到应用程序启动时的旧数据。

我们试图以各种方式清除Angular缓存和Ionic缓存,但这似乎并没有什么不同。

我们尝试过的事情是:

模板上的

$ionicConfigProvider.views.maxCache(0);cache-view="false",在状态上设置cache: false,尝试通过$state.go($state.currentState, {}, {reload : true});$ionicHistory.clearHistory();$ionicHistory.clearHistory();访问状态,$route.reload$window.location.reload

控制器:

function contactsController(Contacts, $stateParams) {

  var vm = this;
  var params = $stateParams.id;
  Contacts.getAllContacts.then(function success(response) {
    vm.data = response.data;
    vm.selectedContact = response.data[params];
  });
}

function contactsFactory($http, $stateParams) {
  return {
    getAllContacts: $http.get('https://api-call'),
    update: function(url) {
      $http.patch('https://api-call/update', [$stateParams.id, url]);
    },
  };
}

快递后端

app.get('/', function (req, res) {
  ref.once("value", function(snapshot){
    res.send(snapshot.val());
  });
});

app.patch('/update', function(req, res) {
  var id = req.body[0];
  ref.child(id).update({"imageURL": req.body[1]});
});  

由于

5 个答案:

答案 0 :(得分:2)

  • 像这样修改您的视图

<ion-view cache-view="false" view-title="My Title!">

答案 1 :(得分:1)

尝试console.log(vm)并验证是否已获取更新的数据。如果记录了更新的数据,它的唯一视图仍未更新,我将尝试以下cache-view="false"

$scope.apply(function (){
   // update your view here
   vm.data = response.data;
   vm.selectedContact = response.data[params];
});

答案 2 :(得分:0)

通过使用Firebase once(),您已有效删除了除{1}之外的所有附加到value的回调:

  

然后侦听指定事件类型的一个事件   停止聆听

请尝试切换到on()

app.get('/', function (req, res) {
  ref.on("value", function(snapshot){
    res.send(snapshot.val());
  });
});

可能是您的问题根本与缓存无关......

答案 3 :(得分:0)

当我在Android设备上安装Ionic 2 Open layer map时,我可以在android屏幕上看到Open layers map成功。但当我关闭它并再次打开应用程序时,我无法看到地图。要解决这个问题,我所做的是:我卸载应用程序,重新启动我的设备,然后重新安装应用程序,之后我可以看到地图。 请给我一个永久性的解决方案。

答案 4 :(得分:0)

将此设置放在app config中

$ionicConfigProvider.views.maxCache(0);
配置中的

$ionicConfigProvider依赖。