現在、phonegap で webkit SQLite を使用して phonegap でアプリを構築しています。これを行うと、変数を SQLite テーブルに挿入する際に問題が発生しました。
function addTrack(track){
var trackItem = track;
alert(trackItem.name);
db.transaction(addingTrack, errorCB);
function addingTrack(tx) {
alert (trackItem.name);
tx.executeSql('INSERT INTO Tracks (name) VALUES ("' + trackItem.name + "')');
}
}
最初のアラートはトラックの名前を返しますが、予想どおり、2 番目のアラートは空の文字列を返します。2 番目のアラートの属性 trackItem.name は定義されているように見えますが、まったく定義されていないのではなく、空の文字列しか含まれていないことに注意してください。
trackItem は、スクリプトの他の場所では使用されません。また、スクリプトの先頭で trackItem をグローバルに宣言しても、何も変わりません。変数がコールバック関数に渡されない理由を知っている人はいますか?