Заполните переменную javascript и затем загрузите сценарии - PullRequest
0 голосов
/ 24 октября 2018

В моем приложении 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.

1 Ответ

0 голосов
/ 24 октября 2018

Вы объявляете applicationId и 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>
...