FullCalendar "view" кешируется - PullRequest
4 голосов
/ 16 мая 2011

Мне интересно, есть ли опция, которую мне не хватает в FullCalendar.

В настоящее время у меня по умолчанию отображается значение 'месяц'.Но я хотел бы, чтобы, если пользователь просматривал представление «неделя», то при следующем посещении веб-сайта пользователь отображал представление «неделя» вместо месяца.Мне интересно об этом без использования БД.

Я знаю, что у jQuery UI Tabs есть эта возможность, использующая функцию 'cache' ... Это то, что я могу реализовать здесь?Если так, то как?

Любое направление будет благодарным.

Ответы [ 5 ]

7 голосов
/ 29 июня 2011

changeView не работает, поскольку viewDisplay вызывается перед ним при настройке календаря.

вот что работает:

в инициализирующем объекте добавьте:

defaultView: $.cookie('fullcalendar_defaultView') || 'month',

viewDisplay: function(view) { $.cookie('fullcalendar_defaultView', view.name); }
2 голосов
/ 16 мая 2011

Вы можете использовать событие viewdisplay

хороший плагин cookie - http://plugins.jquery.com/project/Cookie

2 голосов
/ 16 мая 2011

Вы можете сохранить этот параметр в файле cookie, используя jQuery.cookie, которая является библиотекой, используемой вкладками. Как вы справляетесь с этим и где его настраиваете, это больше вопрос, на который вам нужно ответить, так как вы не предоставили код.

0 голосов
/ 15 января 2017

В версии: 3.0.0 viewDisplay был переименован в viewRender, поэтому текущий код должен выглядеть так:

defaultView: $.cookie('fullcalendar_defaultView') || 'month', viewRender: function(view) { $.cookie('fullcalendar_defaultView', view.name); }

0 голосов
/ 16 мая 2011

В вашем случае вам нужно будет добавить код в событие viewDisplay. http://arshaw.com/fullcalendar/docs/display/viewDisplay/

Что-то похожее на это.

$('#calendar').fullCalendar({
    viewDisplay: function(view) {
        setCookie("lastView", view.name);
    }
});

Вы можете получить больше информации о том, какую информацию view хранит здесь http://arshaw.com/fullcalendar/docs/views/View_Object/

Тогда , все, что вам нужно сделать, это использовать changeView, когда страница загружается с методом (например, в jQuery ready или что-то в этом роде)

http://arshaw.com/fullcalendar/docs/views/changeView/

что-то похожее на

.fullCalendar( 'changeView', getCookie("lastView") )

Существует множество плагинов cookie для jQuery, но все они работают немного по-другому. Я основал свой anser на некотором коде pureJS, найденном по адресу http://jquery -howto.blogspot.com / 2010/09 / jquery-cookies-getsetdelete-plugin.html там могут быть куда лучшие из них.

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