AngularJs - Dyrektywa modyfikująca formatowanie wejścia

Chcę wykonać następujące czynności:

Mam obiekt daty w moim modelu kontrolera i chcę, aby użytkownik go zmodyfikował. Użytkownik powinien otrzymać dwa pola wejściowe. Pierwsze pole wejściowe powinno zmodyfikować datę, a drugi czas. Oba pola wejściowe powinny działać w tym samym modelu daty.

<input ng-model="model.date" date-format="YYYY-MM-DD">
<input ng-model="model.date" date-format="HH:mm:SS">

Nie znalazłem literatury na temat tego wiązania. Normalnie dyrektywa ng-model dba o wartość pola wejściowego. Teraz chcę nadpisać tę wartość własnym formatowaniem. Ponadto, jeśli użytkownik zmieni dane wejściowe, zmiany powinny zostać przeanalizowane i ponownie wprowadzone do obiektu daty.

Ponieważ manipulowanie datami w waniliowym js jest trochę dziwne, użyłem moment.js do sformatowania i przeanalizowania dat i łańcuchów.

Moje obecne podejście wygląda tak:

app.directive('dateFormat', function() {
    return {
        restrict: 'A',
        link: function(scope, el, at) {
            var format = at.dateFormat;
            scope.$watch(at.ngModel, function(date) {
                var result = moment(date).format(format);
                el.val(result);
            });
        }
    };
});

Jednak nastąpi to, gdy tylko chcę zmienić wartość wejściową w przeglądarce. Dostaję trochę NaN: NaN ...

Moje pytania to:

Jak mogę to modelować?Czy to podejście jest ważne z filozofią kanciastą, czy też robię tu coś dziwnego?Czy mogę używać modelu ng i mojej dyrektywy formatu daty razem?Czy jest to łatwiejszy sposób?

questionAnswers(2)

yourAnswerToTheQuestion