簡體   English   中英

未加載Javascript庫以用於頁面加載的部分視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM