Изменение возвращаемого значения 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');
});
});