Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite Web sql/sql Lite并绑定到数据库中的行_Sqlite_Angularjs_Cordova_Web Sql - Fatal编程技术网

Sqlite Web sql/sql Lite并绑定到数据库中的行

Sqlite Web sql/sql Lite并绑定到数据库中的行,sqlite,angularjs,cordova,web-sql,Sqlite,Angularjs,Cordova,Web Sql,这是一个phonegap应用程序。我本以为绑定到db查询返回,result.rows在我的例子中是可能的,但似乎不是。我能让它工作的唯一方法是使用注释掉的代码,我手动将数据逐行推送到数组中。这是唯一的办法吗 绑定到.rows时收到的实际错误是:错误:中继器中不允许重复。中继器:项目中的项目键:未定义:未定义 服务: // only portion of code shown query: function (q) { var d = $q.defer(); var

这是一个phonegap应用程序。我本以为绑定到db查询返回,
result.rows
在我的例子中是可能的,但似乎不是。我能让它工作的唯一方法是使用注释掉的代码,我手动将数据逐行推送到数组中。这是唯一的办法吗

绑定到
.rows
时收到的实际错误是:
错误:中继器中不允许重复。中继器:项目中的项目键:未定义:未定义

服务:

// 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();
            });
Sql.query('select*from DEMO')。然后(函数(数据){
控制台日志(数据);
//$scope.items=[];
//对于(i=0,l=data.rows.length;i
中继器只是一个简单的:

<div ng-repeat='item in items'>{{item.id}} {{item.data}}</div>
{{item.id}{{item.data}

根据错误消息,在
数据.rows
数组中似乎有多个
未定义的

您的工作代码使用
data.rows.item(i)
是否创建了一个新的空对象而不是未定义的对象?尝试将工作代码中的
data.rows.item(i)
更改为
data.rows[i]
,这是否也会中断

假设您使用的是angular 1.1.5,以下是一些选项:

  • 使用当前的解决方法
  • 降级至1.1.4或当前稳定的1.0.7。我认为1.1.4将在a和a的基础上工作
  • 数据中删除所有重复的
    未定义的
    行。行

注意:对于具有类似错误类型的其他对象,在执行
ng repeat
时,Angular会向对象生成
$$hashKey
。此错误表示数组中存在相同的对象(使用相同的
$$hashKey
),1.1.5(及更高版本?)中不允许出现此错误


更多信息,请参见此和。此外,这看起来是相关的,因此我不确定此行为是否打算继续,尽管它在过去似乎已被修复。

我正在运行的查询只有两列和两行数据,即id和数据,它们都有和显示数据。我将降级版本并报告是否修复了它。我刚刚有机会测试了这个版本,并在1.1.4和1.1.5中遇到了类似的问题。。后退到1.0.7修复了其他任何hashkey问题。