Angularjs型号赢得';t从数据库查询后更新
我正在用PockDB编写angularjs应用程序。从数据库查询后,我无法获取更新的模板。 我从XML2JSON加载了数据,然后将它们放到数据库中。这是交易 如果我用它来填充要查看的数据,每个想法都是可以的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
$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(),现在它工作了:四氢呋喃