Загрузить JQuery после того, как планировщик Kendo UI завершил загрузку?

0

Hej nerds :)

У меня есть страница с элементами - Dropdownlist и планировщик kendoUI. что-то вроде:

<div class="SchedulerHeader">
    <p> <label>Current View: </label>
      <select id"views">
        <option value="agenda">Agenda</option>
        <option value="day">Day</option>
        <option value="month">Month</option>
        <option value="week">Week</option>
        <option value="workWeek">Work Week</option>
     </select>
   </p>
</div>
 @(Html.Kendo().Scheduler<myNameSpace.viewModel>().Name("myScheduler") #more options#

<script>
$(function() {

    var scheduler = $("#myScheduler").data("kendoScheduler");
    $("#views").kendoDropDownList({
        value: scheduler.view(),
        change: function () {
            scheduler.view(this.value());
        }
    });
});
</script>

Моя проблема заключается в том, что js - это загрузка до того, как планировщик выполнил загрузку - это означает, что значение инициализации dropdownlist dosnt соответствует значению вида планировщика. Я могу изменить представление планировщиков, изменив значение в раскрывающемся списке, чтобы привязка была в порядке. Когда я отлаживаю pageload, я вижу, что "значение: scheduler.view()" равно "null".

Поэтому мой вопрос: как я могу убедиться, что js загружен после планировщика, без использования таймеров и без написания планировщика в js?

Счастливого Рождества :)

Теги:
kendo-asp.net-mvc
scheduler

3 ответа

0
Лучший ответ

спасибо для ответа.

Мое решение моей проблемы - было подписано на событие привязки данных планировщика пользовательского интерфейса кендо. которые выглядят так и устанавливают значение dropDownList в 'scheduler.view(). name

<div class="SchedulerHeader">
<p> <label>Current View: </label>
  <select id"views">
    <option value="agenda">Agenda</option>
    <option value="day">Day</option>
    <option value="month">Month</option>
    <option value="week">Week</option>
    <option value="workWeek">Work Week</option>
 </select>
</p>
</div>
@(Html.Kendo().Scheduler<myNameSpace.viewModel>().Name("myScheduler") #more options#
 .Events(events => events.Databound("onLoad"))

<script>
 function onLoad(e){

var scheduler = $("#myScheduler").data("kendoScheduler");
$("#views").kendoDropDownList({
    value: scheduler.view()**.name**,
    change: function () {
        scheduler.view(this.value());
    }
});
})
</script>

Спасибо за ответы - С Рождеством Христовым

1

использовать обратный вызов:

Ссылка: http://www.w3schools.com/jquery/jquery_callback.asp

var scheduler = $("#myScheduler").data("kendoScheduler", function() {
    $("#views").kendoDropDownList({
        value: scheduler.view(),
        change: function () {
            scheduler.view(this.value());
        }
    });
});
  • 0
    Не удалось заставить его работать - если я построю это так, событие никогда не будет запущено. Но ваш пост действительно поставил меня на правильный путь - спасибо.
0

Я думаю, что RequireJS может быть вам полезен (http://requirejs.org/).

Он позволяет вам определять ваши JS файлы/плагины в определенном порядке и многое другое. Я позволил вам взглянуть на него, надеюсь, что это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню