0

Cordova で作成しているアプリで Lawnchair を使用しています。レコードを削除する際に不可解な問題が発生しています。つまり、最初のレコードを削除するコードを書いたのに 2 番目のレコードが削除されるか、Uncaught TypeError: Cannot set property 'key' of undefined. が発生します。誰かがこの問題を抱えていましたか、それとも私が何か間違ったことをしていますか? 以下のスクリプトを実行し、異なる順序でレコードを削除しようとすると、問題が発生します。どんな助けでも大歓迎です。ありがとう。

<!DOCTYPE html><html>
<head>
<title>Lawnchair</title>
<script type="text/javascript" src="js/lawnchair-0.6.1.js"></script>
</head>
<body>
<script type="text/javascript">

var tmpStore1 = new Array();
tmpStore1.push({ "ISBN":9781565926998, 
                "Title":"jquery", 
                "Book":"pdf",
                "Qty":3,
                "Value":12.46
              } );

var tmpStore2 = new Array();
tmpStore2.push({ "ISBN":123456789, 
                "Title":"lawnchair", 
                "Book":"web",
                "Qty":6,
                "Value":5.67
              } );

var tmpStore3 = new Array();
tmpStore3.push({ "ISBN":987654321, 
                "Title":"extjs", 
                "Book":"web",
                "Qty":1,
                "Value":8.45
              } );

var viewData = Lawnchair( function(e){ //open the store
    console.log('store ready ');
});
//    viewData.nuke();

viewData.save({key:9781565926998, data:tmpStore1}); // save 1
viewData.save({key:123456789, data:tmpStore2}); // save 2
viewData.save({key:987654321, data:tmpStore3}); // save 3
// hash out to remove records individually

isbn = 9781565926998;
viewData.remove(isbn); //delete 1
isbn = 123456789
viewData.remove(isbn); //delete 2
isbn = 987654321
viewData.remove(isbn); //delete 3

viewData.each(function(record) {
    console.log(record.data[0].ISBN+' - '+record.data[0].Title);
    console.log(record);
});
</script>
</body>

4

1 に答える 1

0

これを機能させるには、isbn を文字列にする必要があります。つまり、isbn = "9781565926998" または isbn 値に設定されたキー値を持つオブジェクトです。試してみる。

于 2015-06-08T11:24:25.613 に答える