Angularjs не меняет формат даты datepicker

0

Я пробовал много решений с этого сайта, отмеченного как 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

Теги:
datepicker

1 ответ

0

Используйте эту директиву

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();
        }
    });
}});
  • 0
    Ни одна из них не работает, если это поможет им использовать angularjs v. 1.3.14 и datepicker v. 1.4
  • 0
    не могли бы вы сделать поршень, чтобы я мог починить его там?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню