2016-09-07 5 views
0

2つのindexeddbデータベースを呼び出すWebアプリケーションを作成しました。ボタンをクリックすると、値を保存して別のページに移動します。Intel XDKでIndexedDB関数が動作しません

これはWebアプリケーションとしては機能しますが、インテルXDKで使用しようとするとコンソールに表示されます: "Uncaught TypeError:未定義の 'varBusquedaPAM'プロパティを設定できません。

var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; 
     var dataBase = null; 
     var bdBusqueda = null; 

     function iniciarBD() { 
      dataBase = indexedDB.open('bdbeta', 4); 

      dataBase.onupgradeneeded = function (e) { 
       var active = dataBase.result; 
       var objetoProductos = active.createObjectStore("productos", {keyPath: 'id', autoIncrement: true}); 
       objetoProductos.createIndex('Nombre_Producto', 'producto', {unique: true}); 
      }; 

      dataBase.onsuccess = function (e) { 
       varBusqueda(); 
      }; 
      dataBase.onerror = function (e) { 
       alert('Error al cargar la base de datos'); 
      }; 
     } 

     function varBusqueda() { 
      bdBusqueda= indexedDB.open('bdbeta2', 1); 

      bdBusqueda.onupgradeneeded = function (e) { 
       var active = bdBusqueda.result; 
       var objetoLista = active.createObjectStore("variableBusqueda", {keyPath: 'id', autoIncrement: true}); 
       objetoLista.createIndex('Variable_de_Busqueda_Producto', 'varBusquedaPAM', {unique: true}); 
       objetoLista.createIndex('Variable_de_Busqueda_Marca', 'varBusquedaMAM', {unique: true}); 
       objetoLista.createIndex('Variable_de_Busqueda_Modelo', 'varBusquedaMAI', {unique: true}); 
      }; 

      bdBusqueda.onsuccess = function (e) { 
       //Do nothing 
      }; 
      bdBusqueda.onerror = function (e) { 
       alert("Hubo un problema al conectar a la base de datos"); 
      }; 
     } 

     function irMarcas(id){ 
      var active = bdBusqueda.result; 
      var data = active.transaction(["variableBusqueda"], "readwrite"); 
      var object = data.objectStore("variableBusqueda"); 
      var request = object.get(1); 

      request.onsuccess = function() { 
       var data = request.result; 

       data.varBusquedaPAM = id; // <---HERE IS WHERE THE ERROR IS SHOWN 

       var consultaActualizar = object.put(data); 
       consultaActualizar.onsuccess = function() { 
        window.location.href = "marca.html"; 
       }; 
      }; 
     } 

そして私はこのHTMLタグを形成する "irMarcas(ID)" 関数を呼び出す:これはJavascriptのある

<input type="button" id="TM" value="Tarjetas madre" onclick="irMarcas(this.id);"> 

を、私は同じ機能(のIndexedDB)で過去にいくつかの同様のプロジェクトをしました私は前にこのエラーが出たことはありません。インテルXDKの私のバージョンが3088の場合にのみ。

私は何かを忘れましたか?

ありがとうございます。

答えて

1

エラーは、data変数が定義されていないことを意味します。 object.get(1)がオブジェクトストア内のオブジェクトと一致しないため、data変数は未定義です。

+0

私の以前のデータ(Webアプリケーションとしてテスト済み)がなくなったことを意味しますか? –

+0

データがもはや存在しない理由はいくつかあります。あなたは何とかそれを削除したり、削除させたりすることができます。または、異なる原点からのデータなど、データを一度も挿入していないデータベースに接続することもできます。 – Josh

関連する問題