Ну, я хочу показать поле ввода даты , но с измененным форматом.Изменение формата входной даты с AngularJs не работает должным образом
Я имею в виду, что формат по умолчанию: yyyy-MM-dd (2015-11-20)
, но я хочу этого: (11-20-2015)
.
Есть jsfiddle Я нашел с momentjs
(без углового) и работает точно так, как я хочу.
Работа с AngularJs, я тоже сделал с директивой, но с полем (и работает). Но если я использую дату ввода, это не сработает.
Это HTML:
<body ng-app="docsTimeDirective">
<div ng-controller="Controller">
Current date is: <span my-current-time="format"></span><hr/>
<input type="date" ng-model="myDate.value" my-current-time="format">
</div>
</body>
И Js:
(function(angular) {
'use strict';
angular.module('docsTimeDirective', [])
.controller('Controller', ['$scope', function($scope) {
$scope.format = 'MM/dd/yyyy';
$scope.myDate = {
value: new Date()
};
}])
.directive('myCurrentTime', ['$interval', 'dateFilter', function($interval, dateFilter) {
function link(scope, element, attrs) {
var format,
timeoutId;
function updateTime() {
element.text(dateFilter(new Date(), format));
console.log(dateFilter(new Date(), format));
}
scope.$watch(attrs.myCurrentTime, function(value) {
format = value;
updateTime();
});
element.on('$destroy', function() {
$interval.cancel(timeoutId);
});
// start the UI update process; save the timeoutId for canceling
timeoutId = $interval(function() {
updateTime(); // update DOM
}, 1000);
}
return {
link: link
};
}]);
})(window.angular);
Вот Plunker. Некоторые идеи?
Ok, я попробовал его с 'element.val (dateFilter (новый Дата(), формат));' и броски: * * 'Указанное значение« 11/20/2015 »не соответствует требуемому формату« yyyy-MM-dd »' ** – robe007
с именем «type =» date »- это должно быть в этом формате , Подтвердили ли вы возвращаемое значение вашей даты, которое возвращает 'dateFilter'? [Здесь скрипка] (http://jsfiddle.net/etpo7L8d/), которая показывает ввод даты, работающий в его простейшей форме. – scniro
Вы видите plunkr? В поле 'span' возвращает дату, как я хочу. – robe007