[英]Javascript libraries aren't loaded in to use for partial views of loaded in page
我正在構成表格的視圖中的選項卡上實現延遲加載功能。
但是,有時在ModelState
錯誤的情況下視圖不會被延遲加載,在這種情況下,我正在調用Html.Action()
來檢索視圖。
為了做到這一點,我正在詢問模型,以查看相關屬性是否為空:
@if (Model.CaseDetails != null)
{
@Html.Action("LoadCaseDetails", new { id = Model.CaseManagement.Id, model = Model.CaseDetails })
}
else
{
//Empty as later added in with ajax call
}
當我稍后在Ajax視圖中執行此操作時,效果很好,但是如果視圖是隨頁面一起加載的,則相關Javascript庫尚未加載,因此依賴該庫的JavaScript將失敗。
除了在頁面開始時加載js庫之外,如何解決此問題?
請注意,我無法輕易將javascript放到主視圖中,因為它依賴於僅在呈現視圖時才加載的數據,並且要添加到該視圖中,我的實際要求比我所允許的更為復雜(我們很懶惰在其他延遲加載標簽內的標簽中加載),因此這種方法實際上並不可行。
您必須推遲執行JavaScript。 有很多方法可以做到這一點。 但是,最好的選擇是使用JS模塊加載庫,例如RequireJS 。 您將需要進行一些初步的工作來熟悉它的工作原理和設置配置,但是一旦完成,它將無限地具有更好的可維護性和功能性。
最簡單的方法(盡管可能不是最好的方法)不是簡單地使用window.onload
:
(function () {
var onload = window.onload;
window.onload = function () {
onload();
// put your js code here that should only happen when everything is loaded
};
})();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.