Почему внутренний метод внутри выполняется последним? - PullRequest
0 голосов
/ 22 февраля 2020

Следующим методом я пытаюсь получить сетку выбранной строки. Кстати, я использую библиотеку компонентов Syncfusion. Мой вопрос, когда я вызываю grid.rowSelected, функция внутри работает в последнюю очередь. Так что я не могу передать модель в ajax. В чем причина этого?

   function editPackage() {         
        var editPackageModel;
        var grid = document.getElementById("Grid").ej2_instances[0];
        grid.rowSelected = function(args) {
            console.log(args.data);*// works last*
            editPackageModel = args.data;*// works last*              
        }

        $.ajax({
            type: "GET",
            url: "/Package/Edit",
            contentType: "application/json; charset=utf-8",
            datatype: "json",
            data: editPackageModel,
            success: function (result) {
                $('#generalModal').html(result);
            },
            error: function () {
                alert("Dynamic content load failed.");
            }
        });
    }

1 Ответ

1 голос
/ 22 февраля 2020

Я не совсем уверен, какова ситуация с "сеткой", я предполагаю, что у вас есть готовый элемент до вызова функции, поэтому попробуйте это:

var grid = document.getElementById("Grid").ej2_instances[0];//Get node reference.
grid.rowSelected = function (args) {//Setup event listener.
    editPackage(args.data);//Pass the data from the event to your function
}


function editPackage(editPackageModel) {//Get the "model" and send ajax
    $.ajax({
        type: "GET",
        url: "/Package/Edit",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        data: editPackageModel,
        success: function (result) {
            $('#generalModal').html(result);
        },
        error: function () {
            alert("Dynamic content load failed.");
        }
    });
}
...