Javascript 未在分部视图上定义函数
Javascript Function Not Defined on Partial View
我有这样的局部视图:
@model Blah.Blah.ThisModel
<script type="text/javascript">
$.getScript("/Scripts/Pages/ReferralEdit.js");
initReferralEdit();
</script>
@* blah blah rest of view here *@
然后在我的 ReferralEdit.js 外部文件中有以下内容:
console.log('external loading');
function initReferralEdit() {
console.log('function is here');
}
将其加载为主要路线(非Ajax)时,效果很好。通过 Ajax 加载时,在页面加载时检查控制台时,我得到以下信息:
Uncaught ReferenceError: initReferralEdit is not defined
external loading
所以,我知道文件正在加载,因为第一个 console.log()
可以正常启动,但该功能似乎不可用。
谁能解释一下为什么? (以及,为什么错误会在 external loading
输出之前显示在 Chrome 的日志中?)如何添加这些函数,使它们成为 'registered' 或 'in the correct scope' 或不管我错过了什么?
(我花了好几个小时试图找出如何在局部视图上加载 JS,但我总是卡在这些未定义的函数上...)
在尝试调用其中的任何方法之前,您需要确保文件已完全加载。试试下面的方法:
$.getScript( "/Scripts/Pages/ReferralEdit.js" )
.done(function( script, textStatus ) {
initReferralEdit();
})
.fail(function( jqxhr, settings, exception ) {
console.log('failed to load script');
});
我有这样的局部视图:
@model Blah.Blah.ThisModel
<script type="text/javascript">
$.getScript("/Scripts/Pages/ReferralEdit.js");
initReferralEdit();
</script>
@* blah blah rest of view here *@
然后在我的 ReferralEdit.js 外部文件中有以下内容:
console.log('external loading');
function initReferralEdit() {
console.log('function is here');
}
将其加载为主要路线(非Ajax)时,效果很好。通过 Ajax 加载时,在页面加载时检查控制台时,我得到以下信息:
Uncaught ReferenceError: initReferralEdit is not defined
external loading
所以,我知道文件正在加载,因为第一个 console.log()
可以正常启动,但该功能似乎不可用。
谁能解释一下为什么? (以及,为什么错误会在 external loading
输出之前显示在 Chrome 的日志中?)如何添加这些函数,使它们成为 'registered' 或 'in the correct scope' 或不管我错过了什么?
(我花了好几个小时试图找出如何在局部视图上加载 JS,但我总是卡在这些未定义的函数上...)
在尝试调用其中的任何方法之前,您需要确保文件已完全加载。试试下面的方法:
$.getScript( "/Scripts/Pages/ReferralEdit.js" )
.done(function( script, textStatus ) {
initReferralEdit();
})
.fail(function( jqxhr, settings, exception ) {
console.log('failed to load script');
});