У меня есть метод ng-click
showSchedules()
который вызывает AJAX:
$scope.showSchedules = function () {
$scope.loadCalendar = true;
appointmentService.getSchedule().then(function (response) {
calendarService.set(response.data.calendar, function () {
$timeout(function () {
$scope.refleshCalendars();
$scope.loadCalendar = false;
console.log($scope.events);
}, 100);
});
});
};
Внутри этого метода вы можете увидеть: console.log($scope.events);
Это дает мне заполненный массив объектами.
Когда я делаю {{events}}
в trmplate HTML, я получаю []
.
Почему я получаю пустой массив?
Код HTML:
<div ng-controller="ScheduleController as vmx">
{{events}}
<mwl-calendar
events="events"
view="vmo.calendarView"
view-title="vmo.calendarTitle"
current-day="vmo.calendarDay"
on-event-click="vmo.eventClicked(calendarEvent)"
on-event-times-changed="vmo.eventTimesChanged(calendarEvent);
calendarEvent.startsAt = calendarNewEventStart;
calendarEvent.endsAt = calendarNewEventEnd"
auto-open="true"
day-view-start="06:00"
day-view-end="23:00"
day-view-split="30"
cell-modifier="vmo.modifyCell(calendarCell)">
</mwl-calendar>
</div>
Вы хотите {{vmx.events}}
потому что используете controller as
аннотации
Использование
controller as
делает очевидным, какой контроллер вы используете в шаблоне, когда к контроллеру применяются несколько контроллеров.
Документация ngController (поиск контроллера как)
{{vmx.events}}
внутри шаблона HTML, тоже пусто []
as
в контроллере
$scope.events2 = angular.copy($scope.events)
и проверить events2 в своем шаблоне.