Изменение возвращаемого значения md-datepicker в Angular Material

Я начал использовать Angular-Material. Когда я использую средство выбора даты, возвращаемое значение даты имеет не только дату. У него есть время и другая информация, как показано ниже

2016-05-08T18:30:00.000Z

Мне просто нужно свидание без другой информации. Есть способ сделать это

это код

<md-datepicker ng-model="data.Date" md-placeholder="Enter date"></md-datepicker>

код контроллера

 app.controller('cntrlr',function($scope){
    $scope.data = {};

    });

5 ответов

Решение

Я перепробовал все вышеперечисленное, и из-за недостатка знаний по угловому направлению мне не удалось добиться успеха. Я получил вход в мой контроллер Web Api. Я разделил значение даты, полученное от T.

string[] newdate = data.date.Split(T);

Затем я присвоил его другой строковой переменной, чтобы получить значение разбиения, которое я хотел

string finaldate = newdate[0];

С этим я получил дату как "2016-05-17"

Я не уверен, где это поможет или эта практика приемлема. Но я надеюсь, что кто-то может извлечь из этого пользу, поэтому я опубликовал это. Спасибо за ребят, которые тоже помогают с ответами на этот вопрос.

md-datepicker анализирует дату в вашей модели, связанную с помощью атрибута "md-model". Вы можете изменить поведение при разборе / форматировании через mdDateLocalProvider. Ознакомьтесь с документацией по адресу https://material.angularjs.org/latest/api/service/$mdDateLocaleProvider

Так как ваш вопрос может быть получен неправильно на 100%, вы также можете обработать проанализированную дату после ее привязки к вашей модели областей действия, зарегистрировав обработчик с помощью атрибута "ng-change" директивы md-datepicker. Например

<md-datepicker ng-model="ctrl.yourDateModel"
               ng-change="ctrl.yourDateStringModel = ctrl.formatDate(ctrl.yourDateModel)">

Демо здесь

Если ваш HTML:

<md-datepicker ng-model="distributionOV.SelectFromDate" md-placeholder="Enter date"></md-datepicker>

Угловым способом:

.controller('appCtrl', function($scope, $filter) {
    $scope.distributionOV={};

    $scope.$watch('distributionOV', function(newVal, oldVal) {
      if (!newVal.SelectFromDate) {
        return false;
      }
      var date = $filter('date')(new Date(newVal.SelectFromDate), "yyyy-MM-dd");
      alert(date);
    },true);
  });

уведомление myDate обязателен к $scope, когда вы заканчиваете свой выбор даты, он должен иметь значение, которое вы выбрали.

Попробуй это

$scope.dateValue = "2016-05-08T18:30:00.000Z"
var split_date = $scope.dateValue.split('T');
$scope.date = split_date[0];
    app.controller('AppCtrl', function ($scope, $filter,) { 

  $scope.$watch("dateValue", function(newValue, oldValue){  
     $scope.dateValue= $filter('date')(newValue, 'dd-MM-yyyy');
  });

});
Другие вопросы по тегам