gpt4 book ai didi

javascript - sqlite 选择的数据没有显示给 ng-repeat

转载 作者:搜寻专家 更新时间:2023-10-31 08:44:16 24 4
gpt4 key购买 nike

我正在调用来自 listItems.push(res.rows.item(i).name) 的数据;通过 ng-repeat 到一个列表。这样我就得到了 SQLite 中存在的名称列表。

这是我的 controllers.js

$scope.createList = function () {

var value1 = document.getElementById("List").value;
alert(value1);
var db = $cordovaSQLite.openDB({ name: "Bd_DB.db" });

var query = "INSERT INTO List (name) VALUES (?)";

$cordovaSQLite.execute(db, query, [value1]).then(function (res) {

console.log("insertId: " + res.insertId);
}, function (err) {
alert(err);
console.error(err);
});

$scope.getAllLists();

};

$scope.getAllLists = function () {

var listItems= [];
var query = "SELECT * FROM List";
$cordovaSQLite.execute($cordovaSQLite.openDB({ name: "Bd_DB.db" }), query).then(function (res) {

if (res.rows.item(0).name !="") {

for (var i = 0; i < res.rows.length; i++) {

listItems.push(res.rows.item(i).name);



}
}

});

}

我试过了,但它没有显示任何类型的列表。我不知道,我做错了什么。请告诉我正确的代码。谢谢这是我的 HTML:

 <div class="bar bar-header">
<button class="button icon-left ion-chevron-left button-clear button-dark" ng-click="closeModal()" ></button>
<h1 class="title">Your List</h1>
<button class="button" ng-click="createListPopup()"> Create List</button>
</div>

我的待办事项

<ion-content>


<div ng-repeat= "name in listItems">

{{item.name}}

</div>


</ion-content>

最佳答案

sqlite事务是同步的,所以在create list中,必须在execute的成功回调中调用getList:喜欢: $scope.createList = function () {

var value1 = document.getElementById("List").value;
alert(value1);
var db = $cordovaSQLite.openDB({ name: "Bd_DB.db" });

var query = "INSERT INTO List (name) VALUES (?)";

$cordovaSQLite.execute(db, query, [value1]).then(function (res) {

console.log("insertId: " + res.insertId);
$scope.getAllLists();

}, function (err) {
alert(err);
console.error(err);
});

};

此外,在 getAllLists 中,无论 .execute 的状态如何,函数都会结束,因此您必须绑定(bind)到一个在成功回调中设置的变量。

$scope.listItems= [];

$scope.getAllLists = function () {

var query = "SELECT * FROM List";
$cordovaSQLite.execute($cordovaSQLite.openDB({ name: "Bd_DB.db" }), query).then(function (res) {
$scope.listItems= [];
if (res.rows.item(0).name !="") {

for (var i = 0; i < res.rows.length; i++) {

listItems.push(res.rows.item(i).name);

}
$scope.$apply();
}
}

最后,您必须创建 $scope.$apply() 以将结果反射(reflect)到 View 中。

关于javascript - sqlite 选择的数据没有显示给 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28632093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com