2014-12-05 28 views
1

我想將HTML div(及其所有內容)放入JSON對象並將其保存到PouchDB數據庫。將HTML Divs放入PouchDB

我的格是這樣的:

<div class="easel"> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: rgb(85, 222, 25);"></div><div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: rgb(164, 101, 52);"></div><div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: rgb(214, 15, 77);"></div><div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
    <div class="square" style="background-color: white;"></div> 
</div> 

我寫了這樣的功能:

window.saveBoard = function() { 
    var db = new PouchDB('tiles'); 
    var remoteCouch = false; 
    var current_layout = $('.easel'); 
    var new_board = { 
     _id: new Date().toISOString(), 
     board: current_layout 
    } 
    db.put(new_board, function callback(err, result) { 
     if(!err) { 
      console.log("Successfully saved new board."); 
     } 
    }) 
} 

但它似乎並沒有做我想要什麼,我得到這個錯誤在控制檯中:Uncaught DataCloneError: Failed to execute 'put' on 'IDBObjectStore': An object could not be cloned.

我需要做些什麼來存儲此div信息,以便稍後返回到頁面中?

+1

您可能希望使用'$('。easel')。html()'來獲取HTML,而不是元素作爲對象。雖然可能與您的問題沒有關係。 – 2014-12-05 20:30:51

+0

它看起來像現在正在儲存,所以謝謝你。我從數據庫中提取的結果如下所示: Promise {cancel:function,[[PromiseStatus]]:「resolved」,[[PromiseValue]]:Object} cancel:function(){return this} __ proto__: Promise [[PromiseStatus]]:「resolved」[[PromiseValue]]:Objectoffset:0rows:Array [3] total_rows:3__proto__:Object 你知道我該如何用[[PromiseValue]]獲得div的數組? – 2014-12-05 20:49:42

+0

你使用jQuerys Ajax或Angulars $ http來執行GET請求嗎?您列出的這些方法只是通話中的承諾,看起來不像來自服務器的實際數據。 – 2014-12-05 20:52:36

回答

2

您不能直接在PouchDB中存儲HTML元素;你只能存儲直接的JSON。因此,在存儲之前,您需要將div轉換爲某種數據結構格式。