2016-05-12 10 views
0

私はcordova s​​qliteからデータを取得してスコープに追加しようとしています。ビューページ内のデータをバインドします。しかし、私は "未定義のプッシュを読むことができません"というエラーが表示され、ビューページにデータが表示されません。

//私のコントローラ

$scope.codesubmit=function(data){ 
     var query = "SELECT * FROM item_master WHERE menucode = ?"; 
     $cordovaSQLite.execute(db, query, [data.menucode]).then(function (res) { 
     alert("inside success"); 
$scope.items.push({"menucode":"+res.rows.item(0).menucode+","menuname":"+res.rows.item(0).menuname+","quantity":"+data.quantity+","price":"+res.rows.item(0).price+"}); 
      alert(items); 
    },function (err) { 
       console.error(err); 
      }); 

//マイビューページ

<tbody id=Tabledata> 
      <tr ng-repeat="item in items"> 
      <td>{{item.menucode}}</td> 
      <td>{{item.menuname}}</td> 
      <td>{{data.quantity}}</td> 
      <td>{{item.price}}</td> 
      <td>{{total}}</td> 
      <td><a class='delete' href='#' ng-click()id='"+res.rows.item(0).id+"'>Delete</a></td> 
      </tr> 
     </tbody> 

答えて

1

$ scope.items arrayを使用する前に定義する必要があります。

$scope.codesubmit=function(data){ 
$scope.items = []; //define the array here 
    var query = "SELECT * FROM item_master WHERE menucode = ?"; 
    $cordovaSQLite.execute(db, query, [data.menucode]).then(function (res) { 
    alert("inside success"); 
$scope.items.push({menucode: res.rows.item(0).menucode, menuname: res.rows.item(0).menuname,quantity: data.quantity, price: res.rows.item(0).price}); 
     alert(items); 
},function (err) { 
      console.error(err); 
     }); 

あなたの関数定義の先頭に$scope.items = [];を追加すると、データベースから取得したデータによって取り込むことができ、空の配列を作成します。他の場所にアクセスしたい場合は、グローバルにも定義することができます。

+0

答えに感謝します。 "+ res.rows.item(0).menucode +" "この行は" + res.rows.item(0).menucode + ""を返します。 – Ranendra

+0

あなたのコード 'res.rows.item(0).menucode'を二重引用符の外側に入れてください。内側にあるものはすべて文字列として扱われます。また、なぜあなたは '+'記号が必要なのかも分かりません。私はそれに応じて私の答えを編集しました。 plzそれを試してみてください。喜んで助けてください:) –

+0

助けてくれてありがとう..魅力のように働いた.. – Ranendra

0

$ scope.itemsが定義されていないようです。最初に$ scope.itemsオブジェクトを定義します。

$scope.items = []; 
+0

プッシュする前にこの行を追加すると、すべてのプッシュの前に配列が空になるため、配列には現在の要素のみが含まれます –

+0

実際には、プロセスの前に$ scope.itemsオブジェクトを定義するとします。はい、グローバル変数やそのようなものとしてこの行を追加できればいいでしょう。 – oguzhan00

関連する問題