0
Я написал директиву для ui.bootstrap.datepicker. (http://angular-ui.github.io/bootstrap/) Он работает хорошо, но он не анализирует объект даты обратно на элемент управления, вероятно, после того, как выбрана дата. Формат даты не применяется после выбора даты.Parsing ui.bootstrap.datepicker object
Формат даты не применяется.
Формат даты применяется (я хочу, чтобы это)
Когда я отладки, я могу видеть два разных объекта.
- "Чт 28 августа 2014 8:00:00 GMT + 0800 (W. Australia Standard Time)"
- "2014-08-28T00: 00: 00"
Любая идея?
app.directive('reusablePicker', function ($compile) {
var template =
' <div class="input-group">'+
' <input type="text" class="form-control datepicker" datepicker-popup="dd-MMMM-yyyy" ng-model="pickerDate" is-open="dateOpened" ng-focus="dateOpen($event)" close-text="Close" ng-disabled="disabled" />' +
' <div class="input-group-addon" ng-click="dateOpen($event)" ' +
' <a href="#"><i class="linecons-calendar"></i></a>'+
' </div>' +
' </div>';
var linker = function (scope, element, attrs, ngModelCtrl) {
scope.disabled = attrs.ngDisabled;
ngModelCtrl.$render = function() {
scope.pickerDate = ngModelCtrl.$viewValue;
};
scope.$watch('pickerDate', function() {
ngModelCtrl.$setViewValue(scope.pickerDate);
});
element.html(template).show();
$compile(element.contents())(scope);
};
return {
require: 'ngModel',
link: linker,
replace: true,
restrict: 'EA',
scope: {},
controller: ['$scope', function ($scope) {
$scope.dateOpen = function ($event) {
if ($scope.disabled !== "true") {
$event.preventDefault();
$event.stopPropagation();
$scope.dateOpened = true;
}
};
}]
};
});
Я нашел, если я обновить отдельные модели даты, как показано ниже, то он работает новой Даты (role.pickerDate) .toISOString(), но это плохо – ove
мне нравится делать что-то в директиве, но она бросает исключение , – ove
я закончил делать это ngModelCtrl $ parsers.push (функция() {modelValue дата вар = новая дата (modelValue) .toISOString(); дата возврата; }). в директиве, но не знаю, должен ли я делать это – ove