У меня есть эта система бронирования устройств, и у нее есть форма резервирования, которая включает поле с всплывающим календарем. Поскольку у меня есть этот всплывающий календарь внутри ng-repeat, я создал для него директиву, чтобы он работал.Angularjs: передать значение календаря из директивы в контроллер
Моя проблема, однако, в том, что я не смог передать значение календаря из директивы моему контроллеру, когда я сохраняю резервирование.
Как мне это сделать?
Вот функция сохранения:
$scope.Start = "";
$scope.saveReservation = function (newReservation, equipment) {
$scope.$emit('WORKING', true);
newReservation.EquipmentID = equipment.ID;
newReservation.StartDate = $scope.Start;
reservationService.addNew(newReservation)
.then(function (response) {
$scope.showReservationForm = false;
reservationService.getAll()
.then(function (response) {
$scope.reservations = response.d.results;
$scope.$emit('WORKING', false);
alert("Your reservation was succesful.")
}, function (reason) {
$scope.$emit('WORKING', false);
alert('You reservation failed because of error ' + reason);
});
});
};
Вот директива:
"use strict";
(function() {
angular.module("App").directive('myRepeatDirective', [
function() {
return {
link: function (scope, element, attrs) {
if (scope.$last) {
$('.bootstrap-datepicker1').datepicker({
format: "dd/mm/yyyy",
autoclose: true
});
$('#bootstrap-datepicker1').on('change', function() {
scope.Start = $('#bootstrap-datepicker1').val()
});
$('.bootstrap-datepicker2').datepicker({
format: "dd/mm/yyyy",
autoclose: true
});
$('#bootstrap-datepicker2').on('change', function() {
scope.End = $('#bootstrap-datepicker2').val()
});
}
}
};
}])
})();
А вот вх ут:
<input style="width: 200px;" type="text" class="bootstrap-datepicker1" id="bootstrap-datepicker1" data-ng-model="Start" placeholder=" dd.mm.yyyy" />