Событие панели инструментов Kendo после рендера - PullRequest
0 голосов
/ 10 октября 2018

У меня есть Kendo UI Панель инструментов :

$("#toolbar").kendoToolBar({
        items : [ {
            type : "button",
            text : "List"
        } ]
})

, и в моем приложении есть скрипт, который будет переводить строки в соответствии с выбранным языком;то есть он найдет слово «Список» и изменит его на «Лист».

Проблема с синхронизацией.У панели инструментов есть определенное время для рендеринга, поэтому вызов моей функции перевода внутри

$(document).ready(function() {    })

слишком рано.

Компонент панели инструментов Kendo не имеет события onRenderedобработчик.В противном случае я мог бы использовать это.

Есть ли способ определить событие, которое происходит после всех компонентов Kendo, включая панель инструментов, отрендеренных?

1 Ответ

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

Прежде всего: разве нет лучшего способа локализовать вашу страницу?

Кроме того: я создал небольшую функцию JavaScript, которая ждет, пока не появится заданный список элементов.Просто назовите его, как показано в комментарии в $(document).ready(function() { }).

// E.g. waitUntilKendoWidgetsLoaded({ "toolbar": "kendoToolBar" }, doTranslation);
function waitUntilKendoWidgetsLoaded(widgets, action) {
    var allLoaded = true;
    for (var key in widgets) {
        if (widgets.hasOwnProperty(key)) {
            allLoaded = allLoaded && $("#" + key).data(widgets[key]) !== undefined;
        }
    }

    if (allLoaded) {
        action();
    }
    else {
        setTimeout(waitUntilKendoWidgetsLoaded, 500, widgets, action);
    }
}

Но учтите: единственное, что вы точно знаете, это то, что элемент существует.Это не гарантирует, что элемент завершил загрузку.Особенно с виджетами Kendo, которые используют источник данных, вы должны использовать существующие события для запуска вашей функции в нужный момент.

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