Я пробовал много решений с этого сайта, отмеченного как anwers, но datepicker не меняет формат даты. Я использую эту угловую директиву без каких-либо результатов:
App.directive('datepicker', function() {
return function(scope, element, attrs) {
element.datepicker({
inline: true,
dateFormat: 'dd/mm/yy',
onSelect: function(dateText) {
var modelPath = $(this).attr('ng-model');
putObject(modelPath, scope, dateText);
scope.$apply();
}
});
}
});
также на html:
<input type="text" ng-model="finalDate" date-format="dd/mm/yyyy" date-type="string" datepicker>
ничего нет, добавил этот код в скрипт:
$scope.$watch('datepicker.date', function(v){ // using the example model from the datepicker docs
var d = new Date(v);
var curr_date = d.getDate();
var curr_month = d.getMonth() + 1; //Months are zero based
var curr_year = d.getFullYear();
$scope.modDate = curr_date + "/" + curr_month + "/" + curr_year;
console.log($scope.modDate)
})
консольный журнал ничего не печатает. Честно говоря, я не знаю, что еще делать, я пробовал другие решения без каких-либо результатов. есть идеи?
EDIT: Plunker добавил http://plnkr.co/edit/hoGYFslN3KovH0wkj5kE?p=preview
Используйте эту директиву
App.directive('datepicker', ['$filter', '$parse', function ($filter, $parse) {
return {
require: 'ngModel',
link: function (scope, element, attrs, ctrl) {
element.datetimepicker({
weekStart: 1,
todayBtn: 1,
autoclose: 1,
todayHighlight: 1,
startView: 2,
minView: 2,
forceParse: 0,
endDate: attrs.enddate == "" ? new Date() : null,
format: "yyyy-MM-dd"
}).on('changeDate', function (ev) {
var dateUTC = new Date(ev.date.getTime() + (ev.date.getTimezoneOffset() * 60000));
var filterApply = $filter('date')(dateUTC, 'yyyy-MM-dd');
$parse(attrs.ngModel).assign(scope, filterApply);
scope.$digest();
});
}
}}]);
если вы хотите использовать свою директиву, это должно быть похоже на
App.directive('datepicker', function ($filter, $parse) {
return function (scope, element, attrs) {
element.datepicker({
inline: true,
dateFormat: 'dd/mm/yy',
onSelect: function (dateText) {
var dateUTC = new Date(dateText.date.getTime() + (dateText.date.getTimezoneOffset() * 60000));
var filterApply = $filter('date')(dateUTC, 'dd/mm/yy');
$parse(attrs.ngModel).assign(scope, filterApply);
scope.$digest();
}
});
}});