У меня есть требование, чтобы всякий раз, когда я нажимаю на день (в полнокалендарном порядке), мне нужно всплывать с подробностями. Мне нужно вызвать действие/контроллер, чтобы получить детали. У меня есть событие event.click в моем .js файле. Я пытаюсь использовать remoteFunction внутри моего полного jquery-календаря. Но grails не распознает вызов remoteFunction, и мой экран не работает (из-за недоступности шаблона .js). Пожалуйста, помогите мне, если это возможно,Как использовать remoteFunction внутри файла .js в grails
$(calId[calNo]).fullCalendar({
header : {
left : ' ',
center : 'title',
right : ' '
},
defaultView: 'month',
selectable: true,
weekMode : 'variable',
eventColor : 'white',
editable : false,
year : eventYr,
month : calNo,
events : allocData,
dayRender: function (event, element, view) {
for (i = 0, l = holidayData.length; i < l; i++) {
var dateString = holidayData[i].substring(0,10);
view.element.find('.fc-day[data-date="' + dateString + '"]').css('background-color', '#FF9999');
view.element.find('.fc-other-month').css('background-color', '#FFFFFF');
}
},
eventRender: function(event, element, view)
{
if(event.start.getMonth() !== view.start.getMonth()) { return false; }
},
eventClick: function(event) {
var selectedDate = String(event.start);
var newData = ${remoteFunction(controller: 'PreSchedule', action: 'calProcess')};
alert(newData);
$('#dateAllocation #selectedDate').text(String(selectedDate).substring(0,10) + ' ,' + String(selectedDate).substring(28,33));
$('#dateAllocation').modal('show');
},
select: function(date) {
var selectedDate = date;
$('#dateAllocation #selectedDate').text(String(selectedDate).substring(0,10) + ' ,' + String(selectedDate).substring(28,33));
$('#dateAllocation').modal('show');
}
});
Может быть я смешивания код на стороне сервера и на стороне клиента код, баловаться с основами. Заранее спасибо.
Вместо использования remotefunction я попытался использовать jquery.ajax/createLink. Но URL-адрес не разрешается.
$("#link").click(function(event){
alert('link');
event.preventDefault();
date = '1985-01-01';
$.ajax({
url:'${createLink(controller:"Student",action:"checkLink")}',
// url:'/checkLink',
dataType: 'json',
type: 'POST',
//data: date,
success: function() {
console.log("The returned data is: ");
// show your modal, or do whatever you want.
}
});
Я вижу ошибку в инструментах разработчика браузера
Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден)
// smsFrontEnd/студент/$% 7BcreateLink (контроллер:% 22Student% 22, действие:% 22checkLink% 22)% 7D
, если это возможно, пожалуйста, помогите мне
Вы пытаетесь загружать данные JSON или фрагмент HTML? –
Спасибо за ответ, я пытался передать значение даты контроллеру, но сам вызов не происходит. – user3582387
Хорошо, но ваш контроллер отправляет данные JSON или фрагмент HTML? Я спрашиваю, потому что подход к получению этих результатов несколько отличается. –