簡體   English   中英

您如何將javascript文件加載到范圍中

[英]How do you load a javascript file into a scope

我試圖弄清楚如何將JavaScript文件的內容加載到范圍中。 原因是我希望能夠具有即插即用功能,並且能夠將不同的功能加載到我的應用程序中。 也許用戶角色確定了要加載的功能,或者我想為給定的客戶端量身定制我的應用程序。

這是我的一個可插入JavaScript文件內容的示例:

myApp.LoginViewModel = (function ()
{
    //DATA
    var self = this;

    return {
        HelloWorld: function ()
        {
            alert('Hellow World from Login View Model');
        }
    };
})();

這是配置文件示例,列出了應加載哪些JS文件:

var myApp = myApp || {};

myApp.ViewModelRegistry =
{
    BaseViewModel: { JavaScriptPath: "/Scripts/ViewModels/BaseViewModel.js"},
    LoginViewModel:{ JavaScriptPath: "/Scripts/ViewModels/LoginViewModel.js"}
};

這是我的代碼,它循環遍歷ViewModelRegistry並使用jQuery加載腳本:

    InitializeApp: function ()
    {
        //REGISTER VIEW MODELS
        for (var viewModelName in myApp.ViewModelRegistry)
        {
            var registeredModel = myApp.ViewModelRegistry[viewModelName];

            $.getScript(registeredModel.JavaScriptPath, function (data, textStatus, jqxhr)
            {
            });
        }

        console.log(myApp);
    }
};

我的目標是將JavaScript函數從JS文件加載到myApp范圍中。 每個可插入的JS文件的作用域為myApp。 我認為僅使用jQuery的getScript加載JS文件即可自動更新myApp范圍,因為所有可插入的JS文件均已針對該范圍進行設計。 但是,console.log(myApp)不會顯示JS文件中的代碼。 我想念什么? 這可行嗎?

我相信您的console.log是在檢索和解析任何JS文件之前執行的。 除此之外,您似乎走在正確的道路上。 這絕對是可行的,用於描述您要實現的目標的術語稱為“異步模塊定義”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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