Я использую angular2 с angular2-fullcalendar. В моем проекте я беру данные из бэкэнда. Теперь мой вопрос: когда я добавляю событие, выбирая даты, я хочу, чтобы оно отображалось в календаре при успешной отправке данных без перезагрузки страницы. Раньше я использовал $('#myCalendar').fullCalendar('renderEvents', newEvents, true);
, чтобы выполнить работу. Но я не хочу использовать jquery в проекте angular. Есть ли другие альтернативы для этого, кроме использования jquery. Пожалуйста, помогите.
События обновления полного календаря Angular2
comment
fullCalendar требует jQuery. Поэтому, если вы удалите jQuery, вы не сможете использовать fullCalendar.
- person ADyson   schedule 29.06.2017
comment
тогда есть ли альтернатива angular? Или целесообразно использовать jquery с угловым
- person Vikhyath Maiya   schedule 29.06.2017
comment
нет, если вы хотите использовать fullCalendar. Вы можете использовать другие продукты календаря, я не знаю, вы можете сами погуглить. Какая у вас проблема с jQuery? Это очень полезно.
- person ADyson   schedule 29.06.2017
Ответы (1)
Да, ViewChild
вместе с ElementRef
@import { ViewChild, ElementRef } from '@angular/core';
@ViewChild('calendar') myCalendar: ElementRef;
myHtmlElement: HTMLElement;
ngOnInit() {
this.myHtmlElement = this.myCalendar.nativeElement;
}
В вашем HTML:
<!-- Where you actual calendar is, add #calendar to your tag -->
<div id="myCalendar" #calendar></div>
person
Community
schedule
29.06.2017
То же, что и JQuery: когда вы используете
$('#myCalendar')
, он извлекает элемент HTML. Здесь у вас есть доступ к нему через this.myHtmlElement
. Все, что вам нужно сделать, это this.myHtmlElement['fullCalendar']('renderEvents', newEvents, true)
- person ; 29.06.2017
@trichetriche когда вы используете
$('#myCalendar')
, он извлекает элемент HTML. Нет, это не так. Возвращаемое значение этого оператора является объектом jQuery. Элемент HTML — это всего лишь одно свойство внутри этого объекта. Вы не можете вызывать fullCalendar() для HTML-элемента, потому что fullCalendar() — это метод расширения jQuery. fullCalendar реализован как расширение jQuery, поэтому для работы требуется jQuery. Без него невозможно пользоваться календарем.
- person ADyson; 29.06.2017
Спасибо, что прояснили это; Я этого не знаю. Но тем не менее, вы можете по крайней мере сделать
$(this.myHtmlElement)
с этим.
- person ; 29.06.2017
@trichetriche да, но тогда это использует jQuery, что противоречит сути вашего обходного пути.
- person ADyson; 29.06.2017
Четко. Но это немного проще, так как вам не нужно, чтобы идентификатор и селектор jquery совпадали. И если вы не соответствуете #calendar с ViewChild, вы сразу получите ошибку.
- person ; 29.06.2017
поэтому вывод заключается в том, что использование jquery нельзя пропустить ... верно?
- person Vikhyath Maiya; 29.06.2017
Похоже на то... Разве для него не сделали машинописный указатель?
- person ; 29.06.2017