2015-02-02 4 views
0

Я просто хочу сделать короткую веб-страницу с помощью Angular Js, которая вычисляет дату. moment.js от страницы: http://momentjs.com/AngularJs и moment.js не работают

Это текущий код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
     "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <title>Date Calculator</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js">  </script> 
    <script src="moment.js"></script> 


</head> 
    <body> 
     <script> 
     function personController($scope) { 
      moment(); 
      $scope.year = moment().get('year'); 
      $scope.month = moment().get('month'); 
      $scope.day = moment().get('day'); 
     } 
     </script> 
    <h1>Date Calculator</h1> 

<div ng-app="" ng-controller="personController"> 
    <form action="datecalc.html"> 
     <h2>Startdate</h2> 
     <table> 
     <tr><td> <p>Day: <br><input name="day" type="number" size="20" maxlength="20" min="1" max="31" ng-model="day"></p></td> 
     <td> <p>Month: <br><input name="month" type="number" size="20" maxlength="20" min="1" max="12" ng-model="month"></p></td> 
     <td> <p>Year: <br><input name="year" type="number" size="20" maxlength="20" min="1980" max="4000" ng-model="year"></p></td> 
     </tr> 
     <tr> 
     <td> 
     Add/Substract 
     </td>  
     <td>Days: </td> 
     <td>Months: </td> 
     <td>years: </td> 
     </tr> 
     <tr> 
     <td> <select id = "todo"> 
       <option value = "1">add</option> 
       <option value = "2">substract</option> 
      </select> 
     </td> 
     <td><input name="days" type="number" size="10" maxlength="100" ng-model="days"></td> 
     <td><input name="months" type="number" size="10" maxlength="100" ng-model="months"></td> 
     <td><input name="years" type="number" size="10" maxlength="100" ng-model="years"></td> 
     </tr> 

     </table> 
    </form> 
</div> 

</body> 
</html> 

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

Любая идея, почему это не работает?

С наилучшими пожеланиями

+1

Любые ошибки в консоли. Я использовал moment.js много раз с угловым без проблем. –

+2

Это потому, что это не угловой. Вы должны перейти к началу работы со своего сайта https://docs.angularjs.org/misc/started. Вам не хватает много. – ribsies

+0

Основываясь на этом учебнике: http://www.w3schools.com/angular/tryit.asp?filename=try_ng_controller, этого должно быть достаточно для Angularjs. Что, по вашему мнению, отсутствует? – ZeroNull

ответ

0

Я сделаю это правильным ответом.

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

Я не слишком хорошо знаю момент, но в этом случае вам это даже не нужно. Вы можете использовать объект даты javascript. Как и ...

 var d = new Date(); 
     $scope.year = d.getFullYear(); 
     $scope.month = d.getMonth(); 
     $scope.day = d.getDate(); 

Следует также отметить, при использовании getMonth(), она возвращает месяц в качестве индекса массива, так что январь = 0, = 1 февраля, с декабря будучи 11.

Редактирование: так быстро выглядящий, момент делает то же самое, и они также делают то же самое с «днем». День дал вам 1, который является вторым индексом массива, который будет вторым днем, что является правильным. используя

moment().get('date'); 

вместо этого дает вам фактический день, а затем просто добавляет + 1 к результату месяца.

+0

Thx много. Теперь я получаю его и его работу. – ZeroNull

Смежные вопросы