2017-10-18 67 views
0

我有一個包含'開始日期'和'持續時間'字段的AngularJS表單,並且我需要根據用戶輸入到這兩個字段中的內容來計算'結束日期',即 結束日期=開始日期+天數AngularJS datepicker添加到天數

但我努力將它們轉換爲正確的數字格式來正確計算'結束日期'。

以下是基本代碼: HTML

<div ng-controller="MyCtrl"> 
    <p>Start Date: <md-datepicker ng-model="date" md-placeholder="Enter date" > 
    </md-datepicker></p> 
<p>No of days:<input ng-model="noDays" type="number"></p> 
<p>End Date: {{date+ noDays}}</p> 
</div> 

JS

var app = angular.module('myApp', ['ngMaterial', 'ngAnimate']); 
app.controller('MyCtrl', function($scope) { 
    $scope.date = new Date(); 
}); 

而且這裏的jsfiddle https://jsfiddle.net/benct/n6jwj61s/

讚賞任何幫助。由於

回答

1

看到這裏this答案

只需寫寫updateDate功能,增加了天:

<div ng-controller="MyCtrl"> 
    <p>Start Date: <md-datepicker ng-model="date" md-placeholder="Enter date" ng-change='updateDate()'> 
    </md-datepicker></p> 
<p>No of days:<input ng-model="noDays" type="number" 
       ng-model-options='{ debounce: 1000 }' 
       ng-change='updateDate()'></p> 
<p>End Date: {{enddate}}</p> 
</div> 

JS

$scope.date = new Date(); 
$scope.enddate = new Date(); 
$scope.noDays = 0; 
$scope.updateDate = function() { 
    $scope.enddate.setDate($scope.date.getDate() + $scope.noDays); 
} 

Fiddle

+0

太好了,謝謝託比這一點。它在第一次正常工作,但如果用戶然後修改'不。第二次輸入的天數,它的工作不正確。它開始將天數添加到「結束日期」而不是「開始日期」。我相信這是對此https://jsfiddle.net/benct/ts70opub/2/ – BENCT

+0

的修補程序是的,請參閱更新後的答案,endDate必須是一個額外的變量。 – Tobi

+0

您還應該將ng-change = updateDate()添加到日期選擇器中! – Tobi