Javascript 函数未在部分视图上定义

Javascript Function Not Defined on Partial View

本文关键字:视图 定义 函数 Javascript      更新时间:2023-09-26

我有一个这样的部分观点:

@model Blah.Blah.ThisModel
<script type="text/javascript">
    $.getScript("/Scripts/Pages/ReferralEdit.js");
    initReferralEdit();
</script>
@* blah blah rest of view here *@

然后在我的推荐编辑.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的日志中? 如何添加这些功能,以便它们"注册"或"在正确的范围内"或我缺少的任何内容?

(我已经花了几个小时试图找出如何在部分视图上加载 JS,我总是坚持这些未定义的函数......

尝试调用文件中的任何方法之前,您需要确保文件已完全加载。尝试如下操作:

$.getScript( "/Scripts/Pages/ReferralEdit.js" )
  .done(function( script, textStatus ) {
     initReferralEdit();
  })
  .fail(function( jqxhr, settings, exception ) {
    console.log('failed to load script');
});