Передача пользовательской функции кнопки через модель - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь передать функцию из модели MVC в fullcalendar CustomButton, вот так

var model = new CalendarViewModel()
{
    (...different properties of fullcalendar...)
    CustomButtons = new
    {
        CustomButton = new
        {
            Text = "Custom",
            Click = "function() { window.location.href = " + Url.Action("CustomView", "Custom") + "; }"     
        }
    },
    Header = new { Center = "title", Left = "prev,next customButton", Right = "month,agendaWeek,agendaDay,today" },
};

А затем сериализовать и передать его в файл js

function initFrom(calendarViewModel, rootUrl) {
        $('#calendar').fullCalendar(calendarViewModel);
}

Однако я получаю ошибку customButtonProps.click.call is not a function, которая, как я полагаю, вызвана тем, что я передаю строку из сериализованной модели.

Если мой подход неверен, как я могу достичь желаемого результата - передать значения маршрутизации в пользовательскую функцию нажатия кнопки (без жесткого кодирования значений маршрута внутри файла js)?

1 Ответ

0 голосов
/ 07 сентября 2018

Я нашел обходной путь для этого.

На основе этой демонстрации планировщика Я добавил пользовательскую кнопку в JS и получил значения из переданной модели (с небольшими изменениями в модели, которые я здесь опускаю):

$('.fc-toolbar .fc-left').append(
    $('<div class="fc-button-group"><button type="button" class="ui-button ui-state-default ui-corner-left ui-corner-right ui-state-hover">' + calendarViewModel.customButton.text + '</button></div>')
        .on('click', function () {
            location.href = calendarViewModel.customButton.url;
        })
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...