Я пишу приложение angularjs с помощью PouchDB. Я не могу получить обновленный шаблон после запроса из базы данных. Я загрузил данные из 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-инспекторе, но не в представлении. Я думаю, что мне нужен пользователь $ scope.apply () для обновления представления и модели, но это то, что я получаю TypeError: undefined не является функцией {stack: (...), message: "undefined is not a function" } Речь идет о пустом. Я не могу понять, где ошибка ...:]
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), и есть рабочий - угловой 1.2.7. Я запутался. Вот 1.3.4
$scope.$apply(function(){
$scope.products = _products;
})