2016-08-10 7 views
1

當用戶單擊表格的一行時,顯示一個模式(引導)對話框。以下是我正在使用的一小段代碼:在模式對話框中從ajax調用中刪除緩存的信息

.done (function (data_, textStatus_, jqXHR_) { 
     $('<pre/>').html(doc_contents[1].text_content).appendTo('#employee_document_contents'); 
     $('#mydialog').modal("show"); 
     $('#mydialog').draggable(); 

}); 

上述代碼抓取JSON值並顯示在對話框中。我面臨與我的ajax調用相關的緩存相關問題。對話框的前一個內容沒有被刪除,我必須從瀏覽器中清除緩存,然後再次單擊特定行以查看我想要看到的內容。我嘗試使用cache : false,這樣做會在日曆中添加一個基於日期的時間戳網址,但我仍然看到我的對話框中的舊內容。有些SO帖子建議摧毀模式,但我相信它不會再開放。有沒有更好的方法可以遵循,以確保在對話框中看不到以前的內容?我使用Chrome作爲瀏覽器。

+0

你如何獲得或檢索JSON對象'doc_contents'? – kolunar

+0

@kolunar我像這樣檢索它'var doc_contents = data_.myContentList;' – John

+0

你確定你有一個特定的原因使用.'appendTo()'而不是使用'.html()'? – kolunar

回答

1

我認爲這不是一個緩存的問題,但DOM操作問題。 你應該替換#employee_document_contents內的內容而不是appendTo它。

試試這個代碼的回調函數內:

var content = $('<pre />').html(doc_contents[1].text_content); 
$('#employee_document_contents').html(content); // Here you replace the content 
$('#mydialog').modal("show"); 
$('#mydialog').draggable(); 
+0

太棒了,工作。 IT是appendTo問題。 – John

0

從例如提供以上,這是很難理解的承諾對象是如何使用的。我沒有看到你使用data_對象。 doc_contents變量集在哪裏?在有希望回調的關閉或外部?

解決此問題的快速方法是瞭解您的範圍和分配。使用Console.log/Chrome中的網絡選項卡 /或使用斷點

或執行以下操作來查看所有Ajax響應

$(document).ajaxSuccess(function(event, xhr, settings) { 
    console.log(xhr.responseText); 
}); 

您也可以鏈你的jQuery調用

$('#mydialog').modal("show").draggable(); 
相關問題