CoffeScriptとWeb SQL Database
うーん、こんな風にかけばいいのかなあ。
なんかここまでくると、せっかくのCoffeescriptなのに、冗長だよね。
後、関数渡しのコールバックが多すぎて、OOPやろうとするとクロージャ連発で酷い事になる。グローバル変数をつかっちゃえば、大分スッキリするんだけど…。
class List2 db: null table_name: 'list' SCHEMA: '(id, name, site_num, updated_at)' constructor: ()-> @db = window.db @checkDB() checkDB: -> _this = this @db.transaction( # <-ここのカッコがキモい do (_this) -> return (tx) -> console.log 'db check start' sql = "SELECT * FROM #{_this.table_name}" tx.executeSql( sql [] (tx, rs)-> console.log 'db check ok' for i in [0...rs.rows.length] row = rs.rows.item(i) console.log row ) do (_this) -> (error) -> console.log 'db select fail' _this.initDB() () -> console.log 'db check end' )# <-正直ここのカッコがキモい initDB: -> _this = this @db.transaction( do (_this)-> return (tx) -> console.log 'do db init ' sql = "CREATE TABLE IF NOT EXISTS #{_this.table_name} #{_this.SCHEMA};" console.log sql tx.executeSql( sql [] (tx, rs)-> console.log 'db #{_this.table_name} table init.' ) (error) -> console.log 'db init fail' -> console.log 'db init end' ) @test = new List2
しかし…、これがブラウザで動くってのがすごいんだよなw、なんかPHPにみえるし。