从pouchdb查询后,Angularjs模型不会更新

时间:2014-11-29 21:11:40

标签: angularjs pouchdb

我正在用PouchDB写一个angularjs应用程序。从db查询后我无法获得更新模板。 我从XML2JSON加载数据,然后将它们放到pouchdb。这是合约。

如果我使用它来填充要查看的数据,那么每个想法都可以。

  $http.get('Katalog_27_11_2014_21_41_21.xml').then(function(resp) {
  console.log(resp);
  return resp.data;
}).then(function(string) {
  var jsonData = xmlParser.xml_str2json(string);
  var outPutJSON = [];
  console.log(jsonData);
  angular.forEach(jsonData.Catalog.Item, function(value, key) {
    Database.put(value.EANs.EAN,value);
    outPutJSON.push(value);
    console.log(value);
  });

  $scope.products = outPutJSON;
});

但是如果我从pouchdb使用查询视图为空,我甚至在ng-inspector中看到控制台中的数据,但是在视图中没有。我认为我必须使用$ scope.apply()来更新视图和模型,但这就是我得到的TypeError:undefined不是函数{stack:(...),message:“undefined不是函数” } 在视图中是空的。我无法弄清楚错误在哪里......:]

  Database.queryDocs().then(function(doc) {
  var _products = [];
  log.debug(doc);
  angular.forEach(doc.rows, function(value, key) {
    log.debug(value);
    _products.push(value.doc.data);
  });
  $scope.products = _products;
  // $scope.apply();
  log.debug($scope.products);
})
.catch(function(argument) {
  log.debug(argument);
});

更新

我已经添加了这个,现在它神奇地起作用,但仍然不知道为什么。 Becouse我在其他应用程序(Ionic)中使用相同的工作 - 角度1.2.7。我糊涂了。这是1.3.4

$scope.$apply(function(){
    $scope.products = _products;
  })

2 个答案:

答案 0 :(得分:0)

摘要周期使用$ scope运行。$ apply(),而不是$ scope.aplly()。

答案 1 :(得分:0)

那是在那里输入错误。是#39; m使用$ scope.apply();