2013-06-06 3 views
0

이것은 phonegap 각형 응용 프로그램 용입니다. db 쿼리 반환, 내 경우에 result.rows 바인딩 될 것이라고 생각했을 것 그것은 가능하지만 것 같습니다. 이 작업을 수행 할 수있는 유일한 방법은 행별로 배열에 데이터를 수동으로 밀어 넣은 주석 처리 된 코드를 사용하는 것입니다. 이것이 유일한 방법입니까? 웹 sql/Sql Lite 및 행 각도로 바인딩

실제적으로 .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> 

답변

0

data.rows 배열에 두 개 이상의 undefined 항목이있는 것 같은 오류 메시지를 기반으로합니다.

귀하의 작업 코드는 data.rows.item(i)을 사용하므로 정의되지 않은 새로운 빈 개체가 생성됩니까? 작업 코드에서 data.rows.item(i)data.rows[i]으로 변경해보십시오.

  • 다운 그레이드 1.1.4이나 현재 안정 1.0.7에 현재 해결 방법 :

    여기에 각 1.1.5을 사용하는 가정은 몇 가지 옵션이 있습니다. 1.1.4는 broken version with 1.1.5working version with 1.1.4을 기반으로 작동한다고 생각합니다.

  • data.rows

주에서 중복 undefined 행을 제거 ng-repeat을 수행 할 때 오류의 유사한 유형을 가진 다른 사람들을 위해 각도가 객체에 $$hashKey를 생성합니다. 이 오류는 동일한 객체가 배열에 있고 (동일한 $$hashKey 포함) 1.1.5 (및 이후?)에서 허용되지 않음을 나타냅니다.

자세한 내용은 blog postgoogle groups post을 참조하십시오. 또한 이것은 pull request과 관련되어 보이므로 과거에 수정 된 것처럼 보이지만 앞으로이 동작이 의도되었는지 확실하지 않습니다.

+0

내가 실행중인 쿼리에는 두 개의 열과 두 행의 데이터, ID 및 데이터가 있으며 둘 다 데이터를 갖고 표시합니다. 수정 한 버전을 다시 다운 그레이드 할 것입니다. – lucuma

+0

난 이걸 시험 할 기회가 있었고 1.1.4와 1.1.5에서 비슷한 문제를 겪었습니다. 1.0.7로 되돌아 가면 해시 키 문제가있는 다른 사람이 고칠 수 있습니다. – lucuma