Мне нужно установить недели и месяцы испанского языка в средстве выбора даты. Я пробовал, как показано ниже, но не смог получить эту региональную опцию в средстве выбора даты. В этом я использую поля динамических компонентов. Когда в начальных полях отображается сегодняшняя дата, следующее поле отображается на основе даты, выбранной в первом поле. Итак, в этой динамической дате в дате picker.Эта функция работает нормально, но мне нужен динамический язык. Например:

app.directive('myDirective', function(){
    return {
        restrict: 'A',
        require: 'ngModel',
        scope: {
            agdate:'@',
            seldate:'@',
        },
        link: function(scope, element, attrs, ngModelCtrl){
            element.on("mouseenter" ,function(){
              var displayingDays =parseInt(scope.agdate);
              if(scope.seldate){
              var selected = scope.seldate;
              }else{
                 var selected =-0;
              }
              var regionalOptions = {
                      "regional": [{
                          "es": {
                              closeText: "Cerrar",
                              prevText: "<Ant",
                              nextText: "Sig>",
                              currentText: "Hoy",
                              monthNames: ["enero", "febrero", "marzo", "abril", "mayo", "junio",
                                  "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"
                              ],
                              monthNamesShort: ["ene", "feb", "mar", "abr", "may", "jun",
                                  "jul", "ago", "sep", "oct", "nov", "dic"
                              ],
                              dayNames: ["domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"],
                              dayNamesShort: ["dom", "lun", "mar", "mié", "jue", "vie", "sáb"],
                              dayNamesMin: ["D", "L", "M", "M", "J", "V", "S"],
                              weekHeader: "Sm",
                              dateFormat: "dd/mm/yy",
                              firstDay: 1,
                              isRTL: false,
                              showMonthAfterYear: false,
                              yearSuffix: ""
                          }
                      }]
                  };
              attrs.minDate = selected;
              attrs.maxDate =  displayingDays;
                element.datepicker({
                    dateFormat: "dd/mm/yy",
                    //showOn: 'both',
                    minDate: selected,
                    buttonImage: "calendar.gif",
                   // buttonImageOnly: true,
                    //buttonText:'Choose a Date',


                    beforeShow: function(element, datepicker){
                        if(attrs.minDate){
                            angular.element(element).datepicker("option", "minDate", attrs.minDate);
                        }
                        if(attrs.maxDate){
                            angular.element(element).datepicker("option", "maxDate", attrs.maxDate);
                        }
                    },
                    onSelect:function(date){
                        scope.$apply(function(){
                            ngModelCtrl.$setViewValue(date);
                        });
                    }
                });
            });
        }
    }
});

Мне нужен angular js.

1
Shiva Goud A 20 Апр 2018 в 11:17

1 ответ

Лучший ответ

Местный региональный вариант применяется напрямую.

app.directive('myDirective', function(){
    return {
        restrict: 'A',
        require: 'ngModel',
        scope: {
            agdate:'@',
            seldate:'@',
        },
        link: function(scope, element, attrs, ngModelCtrl){
            element.on("mouseenter" ,function(){
              var displayingDays =parseInt(scope.agdate);
              if(scope.seldate){
              var selected = scope.seldate;
              }else{
                 var selected =-0;
              }
              attrs.minDate = selected;
              attrs.maxDate =  displayingDays;
                element.datepicker({
                    dateFormat: "dd/mm/yy",
                    minDate: selected,
                    buttonImage: "calendar.gif",
                    closeText: "Cerrar",
                    prevText: "<Ant",
                    nextText: "Sig>",
                    currentText: "Hoy",
                    monthNames: ["enero", "febrero", "marzo", "abril", "mayo", "junio",
                        "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"
                    ],
                    monthNamesShort: ["ene", "feb", "mar", "abr", "may", "jun",
                        "jul", "ago", "sep", "oct", "nov", "dic"
                    ],
                    dayNames: ["domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"],
                    dayNamesShort: ["dom", "lun", "mar", "mié", "jue", "vie", "sáb"],
                    dayNamesMin: ["D", "L", "M", "M", "J", "V", "S"],
                    weekHeader: "Sm",
                    firstDay: 1,
                    isRTL: false,
                    showMonthAfterYear: false,
                    yearSuffix: "",
                    beforeShow: function(element, datepicker){
                        if(attrs.maxDate){
                            angular.element(element).datepicker("option", "maxDate", attrs.maxDate);
                        }
                    },
                    onSelect:function(date){
                        scope.$apply(function(){
                            ngModelCtrl.$setViewValue(date);
                        });
                    }
                });
            });
        }
    }
});
3
Shiva Goud A 23 Апр 2018 в 05:26