Angularjs型号赢得';t从数据库查询后更新

Angularjs型号赢得';t从数据库查询后更新,angularjs,pouchdb,Angularjs,Pouchdb,我正在用PockDB编写angularjs应用程序。从数据库查询后,我无法获取更新的模板。 我从XML2JSON加载了数据,然后将它们放到数据库中。这是交易 如果我用它来填充要查看的数据,每个想法都是可以的 $http.get('Katalog_27_11_2014_21_41_21.xml').then(function(resp) { console.log(resp); return resp.data; }).then(function(string) { var jso

我正在用PockDB编写angularjs应用程序。从数据库查询后,我无法获取更新的模板。 我从XML2JSON加载了数据,然后将它们放到数据库中。这是交易

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

  $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;
});
但是如果我使用queryfromdb,那么视图是空的,我会在consolenad中看到数据,甚至在ng inspector中也会看到,但不会在视图中看到。我认为我必须使用$scope.apply()来更新视图和模型,但这就是我得到的TypeError:undefined不是函数{stack:(…),消息:“undefined不是函数”} 视图中的是空的。我想不出bug在哪里……:]

  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);
});
更新

我已经添加了这个,现在它神奇的工作,但仍然不知道为什么。因为我在其他应用程序(Ionic)中也使用了相同的方法,还有工作-angular 1.2.7。我很困惑。这里是1.3.4

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

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

此处键入错误。我正在使用$scope.apply()

您拼写的$apply()不正确-这可能是问题所在吗?您在apply前面有美元符号吗$apply(),不是apply()?是的,就是$scope。$apply(),我写了$scope.apply(),现在它工作了:四氢呋喃