首页 > 解决方案 > 填充 javascript 变量,然后加载脚本

问题描述

在我的 MVC 应用程序中,我试图在加载脚本之前填充两个 javascript 变量。但是我不断收到我的变量未在加载 javascript 文件之前设置的错误。我一直在兜圈子试图弄清楚这一点。

<script type="text/javascript">
        $(document).ready(function () {
            var applicationId = "@Constants.SquareUpPaymentInfo.AppID";
            var locationId = "@Constants.SquareUpPaymentInfo.LocationID";
            jQuery.getScript('https://js.squareup.com/v2/paymentform')
                .done(function () {
                    jQuery.getScript('@Url.Content("~/Content/JS/sqpaymentform.js")')
                        .fail(function () {
                            alert('Failed');
                        })
                })
                .fail(
                function () {
                        alert('There was a connection issue for the payment form library. ');
                    });
        });
</script>

sqpaymentform.js 加载但它需要设置 applicationID 和 locationID 但它认为由于某种原因没有设置它们但我可以很容易地看到它们是在 chrome 开发人员屏幕中设置的。

标签: jqueryasp.net-mvcsquare

解决方案


您将applicationIdand声明locationId为局部变量。脚本需要它们是全局变量,所以在函数之外声明它们。

<script type="text/javascript">
var applicationId = "@Constants.SquareUpPaymentInfo.AppID";
var locationId = "@Constants.SquareUpPaymentInfo.LocationID";

$(document).ready(function() {
  jQuery.getScript('https://js.squareup.com/v2/paymentform')
    .done(function() {
      jQuery.getScript('@Url.Content("~/Content/JS/sqpaymentform.js")')
        .fail(function() {
          alert('Failed');
        })
    })
    .fail(
      function() {
        alert('There was a connection issue for the payment form library. ');
      });
});
</script>

推荐阅读