在asp.net MVC中的require JS中,我试图访问另一个模块中使用的变量和方法。怎么做 ?提供了以下示例
在JS下的ParentPageA
要求([ 'jquery', 'bootstrap', 'jqGrid'], 函数($){
$(function () {
var messageToAlert = 'Sample Message'; //Message Could be dynamic
function DOWork(){
alert('hi'); //Or other code using Jquery table
alert(messageToAlert);
messageToAlert = 'Change message ';
}
});
}
ParentPageA中的PartialViewA
require([
'jquery',
'bootstrap',
'jqGrid',
'ParentPageA'],
function ($,ParentPageA){
//ParentPageA - is Undefined
$(function () {
//How to Access messageToAlert variable ?
//How to Access DOWork()
//Need to access back the changed MessageToAlert variable as well
});
}
是唯一的选择吗?如果我使用Define-它仍然可以在define内加载其他依赖模块吗?由于我的函数和变量依赖于其他库才能运行(如Jquery,Calendar等的函子)。
答案 0 :(得分:0)
固定如下
define('MYFUNCMOD', ['https://code.jquery.com/jquery-3.3.1.min.js'] ,function(jQuery) {
// Window settings
var Message = "Initial Message";
function change() {
this.Message = "Changed Triggered";
}
function docReadyDisp()
{
$(document).ready(function(){
alert('docReadyDisp Doc Ready');
});
}
return {
Message: Message,
change:change,
docReadyDisp : docReadyDisp
};
});
// (is run on dom load)
require(['https://code.jquery.com/jquery-3.3.1.min.js','MYFUNCMOD'], function(jQuery,system) {
$(document).ready(function() {
alert(system.Message);
system.change();
alert(system.Message);
system.docReadyDisp();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>