Переданное значение в функцию js кажется нулевым, хотя - PullRequest
0 голосов
/ 15 ноября 2018

это функции, которые я на самом деле использую для вызова конкретного API из js:

function SuspendActionOp(barcode, owner) {
//alert(barcode+" - "+num);
alert(owner);
if (owner == null) {
    alert('owner is null');
} else {
    $.ajax({
        url: 'http://myserver/myapp/api/Actions?action=2&barcode=' + barcode + '&owner=' + owner,
        //data: { id: barcode },
        dataType: 'json',
        type: 'post',
        success: function (a) {
            //var t = JSON.parse(a);
            if (a.result.localeCompare("suspended") == 0) {
                $("#details_" + barcode).modal("hide");
                setTimeout(MachinesBigOp(), 2000);
            } else {
                alert("Error");
            }
        }
    });

}
}

Эта функция вызывается (и оценивается владелец):

function ActionsOp(stato, barcode, num, owner) {
alert('ActionsOp '+owner);
var btngroup = document.createElement('div');
btngroup.classList.add("btn-group");

switch (stato) {

    case 1:
        var s = document.createElement("a");            
        s.onclick = function () {
            //var t = owner;
            alert(owner);
            SuspendActionOp(barcode, num, owner);
        };
        s.classList.add("btn");
        s.classList.add("btn-warning");
        s.innerHTML = "❚❚";

        btngroup.appendChild(s);
        var e = document.createElement("a");

        e.classList.add("btn");
        e.classList.add("btn-danger");
        e.innerHTML = "✔";
        e.onclick = function () {
            this.parentNode.parentNode.appendChild(ModalEndOp(barcode, owner));
            $('#end_' + barcode).modal({ backdrop: false });
        };
        e.style.marginLeft = "40px";
        btngroup.appendChild(e);
        break;
    case 2:
        var a = document.createElement("a");

        a.onclick = function () {
            this.parentNode.parentNode.appendChild(ModalStartOp(barcode, owner));
            $("#start_" + barcode).modal({ backdrop: false });
        };
        a.classList.add("btn");
        a.classList.add("btn-success");
        a.innerHTML = "⚡";
        btngroup.appendChild(a);
        break;
    case 4:
        break;
}
return btngroup;
}

с:

function ModalDetailsOp(num, owner) {
    alert('ModalDetailsOp' + owner);  
   //.........
   var azioni = document.createElement('td');
   azioni.appendChild(ActionsOp(a[i].Stato, a[i].Barcode, a[i].NumMachine, owner));
    //.........
}

с:

    function MachinesBigOp(owner) {
        alert('MachinesBigOp'+owner);
        $.ajax({
            url: 'GetMachines',
            data: {},
            dataType: 'json',
            type: 'get',
            success: function (a) {

                var cont = document.getElementById("machineContainer");
                cont.innerHTML = "";
                var l = a.length;
                var i = 0;
                for (i = 0; i < l; i++) {
                    var m = document.createElement("a");
                    m.classList.add('machine');
                    m.classList.add('hover-shadow');
                    m.classList.add('show');
                    m.style.color = "black";
                    cont.appendChild(ModalDetailsOp(a[i].NumMachine,owner));
//.....
}

и, наконец, со страницы бритвы html:

<script>
    $(function () {
        filterSelection("all");
        filterInit();
        MachinesBigOp('@Session["id"].ToString()');
    });

</script>

Но, похоже, когда я передаю ownerпеременная со своим значением и при вызове SuspendActionOp() значение владельца равно нулю.Я не могу узнать, где проблема.Спасибо за помощь

1 Ответ

0 голосов
/ 15 ноября 2018

Ваша SuspendActionOp функция определяется двумя параметрами

SuspendActionOp(barcode, owner)

но вы вызываете его с 3 параметрами из ActionsOp

SuspendActionOp(barcode, num, owner);

Итак, очевидно, что в этом случае num будет иметь значение owner!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...