Это для углового приложения phonegap. Я бы подумал, что привязка к возврату запроса к БД, result.rows
в моем случае была бы возможна, но похоже, что это не так. Единственный способ, которым я мог заставить это работать, - это закомментированный код, где я вручную вставляю данные в массив построчно. Это единственный способ?
Фактическая ошибка, полученная при привязке к .rows
: Error: Duplicates in a repeater are not allowed. Repeater: item in items key: undefined:undefined
Обслуживание:
// only portion of code shown
query: function (q) {
var d = $q.defer();
var db = this.getDb();
db.transaction(function (t) {
t.executeSql(q, [], function (tx, results) {
d.resolve(results);
}, function (err) {
d.reject(err);
});
}, function (err) {
d.reject(err);
}
);
return d.promise;
}
Контроллер вот такой:
Sql.query('select * from DEMO').then(function (data) {
console.log(data);
//$scope.items = [];
//for (i = 0, l = data.rows.length; i < l; i++) {
//$scope.items.push(data.rows.item(i));
//}
$scope.items = data.rows; // this errors out
$scope.$safeApply();
});
Повторитель прост:
<div ng-repeat='item in items'>{{item.id}} {{item.data}}</div>