Я не могу получить дату от значения ввода даты до другого var angularjs - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть ввод даты, который по какой-то причине становится неопределенным или "d-n-u", когда я пытаюсь использовать в своей переменной области видимости.Думаю, у меня есть часы для этого ввода, и значение там не определено.Я не могу заставить это работать

html:

<input type="date" id="date-input2" ng-model="params.schedule" />

javaScript:

$scope.$watch('params.schedule', function (newValue, oldValue) {
//here I am indeed getting Mon Dec 31 2018 00:00:00 GMT+0000 (Western European //Standard Time)
        console.log(newValue);
        console.log($scope.params.schedule);

    }, true);

// но когда я пытаюсь использовать это, оно становится undefined ... а затем d-n-u ... из-за этого

var scheduledDate = $scope.params.schedule;
$scope.params.schedule = scheduledDate[2] + "- " + scheduledDate[1] + "- " + scheduledDate[0];
$scope.ScheduledDate = scheduledDate.substring(0, 10);

почему значение теряется на полпути?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Я думаю, что дата используется в качестве строки JS:

var scheduledDate = $scope.params.schedule;
// scheduledDate is now equal to the date object "Mon Dec 31 2018 00:00:00 GMT+0000"
$scope.params.schedule = scheduledDate[2] + "- " + scheduledDate[1] + "- " + scheduledDate[0];
// Now $scope.params.schedule is parsed as a string by JS (you can't iterate on a date object) and equal to the 3rd char of the string, dash, 2nd char, dash, 1st char
// So $scope.params.schedule is equal to d- n- u

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

0 голосов
/ 28 декабря 2018

Назначьте значение $scope.params.schedule в пределах $ scope. $ Смотрите сами, но не снаружи,

$scope.$watch('params.schedule', function (newValue, oldValue) {
//here I am indeed getting Mon Dec 31 2018 00:00:00 GMT+0000 (Western European //Standard Time)
var scheduledDate = $scope.params.schedule;
$scope.params.schedule = scheduledDate[2] + "- " + scheduledDate[1] + "- " + scheduledDate[0];
$scope.ScheduledDate = scheduledDate.substring(0, 10);
}, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...