Изменить событие не срабатывает - Kendo ComboBox

У меня есть Kendo ComboBox, заполненный списком, и когда пользователь выбирает другой вариант в списке, я хочу, чтобы pageModel.newServiceModel.JobSelectionChange() срабатывал. Я пробовал 3 разных способа сделать это, и ни один из них не работает. Я пытался просто установить change: pageModel.newServiceModel.JobSelectionChange(), change: (все, что встроено в саму функцию pageModel.newServiceModel.JobSelectionChange()) и то, что у меня есть на данный момент. Ни один из них не привел к вызову функции, когда я меняю выбор в раскрывающемся списке. Кроме того, закомментированное изменение: console.log() действительно работает, так что оно как-то связано с самой функцией. Любые идеи по этому поводу?

pageModel.newServiceModel.JobSelectionChange = function () {
    ...
}

// loading combobox
pageModel.newServiceModel.selectedJobs.subscribe(function (newData) {
    $("#newServiceJobs").data("kendoComboBox").dataSource.data(newData);
});

$("#newServiceJobs").kendoComboBox({
    placeholder: "Select One",
    filter: "contains",
    suggest: true,
    change: function() { pageModel.newServiceModel.JobSelectionChange(); },
    //change: function() { console.log("hello") },
    dataSource: pageModel.newServiceModel.selectedJobs(),
    dataTextField: "name",
    dataValueField: "jobid"
});

person CDA the Programmer    schedule 03.02.2020    source источник


Ответы (1)


Странно, это должно работать так, как у вас есть - единственное, что я хотел бы отметить в других ваших попытках, - это не выполнять функцию при ее настройке.

so:

$("#newServiceJobs").kendoComboBox({
    placeholder: "Select One",
    filter: "contains",
    suggest: true,
    change: pageModel.newServiceModel.JobSelectionChange,
    //change: function() { console.log("hello") },
    dataSource: pageModel.newServiceModel.selectedJobs(),
    dataTextField: "name",
    dataValueField: "jobid"
});

Если вы сделаете это и поместите консольный журнал/отладчик/предупреждение в свою функцию JobSelectionChange, вы все равно не увидите, как она выполняется? Потому что, если вы не видите, что эта функция нажата, по крайней мере, вы должны увидеть ошибку в консоли, что-то вроде этой функции не существует или не может вызывать что-то в undefined.

person Kyle    schedule 03.02.2020
comment
Я обнаружил, что причина, по которой он не срабатывает, связана с тем, как написан JobSelectionChange(). Само событие на самом деле срабатывает, когда я помещаю туда console.log(hello), и оно действительно появилось после нажатия на другую опцию в списке. Просто фактическая функция больше не работает. Сложность в том, что я переключаю все это с нокаутирующей привязки, которая полностью работала, на этот Kendo ComboBox, потому что у комбобокса есть пара функций, которые нокаут не включает. - person CDA the Programmer; 03.02.2020