![](/img/trans.png)
[英]How do you load a Javascript file inside of the success function for $.ajax()?
[英]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.