2017-04-21 107 views
1

我使用AngularJs 1.6具有角-UI-引導2.5.0(自舉-UI-tpl.min.js)角+引導+ =日期選擇器不工作

在加載網頁時,模型值( dateOfBirth)沒有在日期選擇器文本框中預填充。看起來,很多人都報告過不同版本的angular/bootstrap類似的問題,但似乎沒有任何工作。

HTML:

<input type="text" class="form-control" uib-datepicker-popup="{{format}}" ng-model="dateOfBirth" datepicker-options="dateOptions"/> 
    <span class="input-group-btn"> 
    <button type="button" class="btn btn-default" ng-click="openDobDatePicker()"><i class="glyphicon glyphicon-calendar"></i></button> 
    </span> 

的Javascript:

$scope.format = 'dd/MM/yyyy' 

$scope.dateOfBirth = '05/12/2004' 

$scope.dateOptions = { 
    maxDate: new Date(), 
    startingDay: 1, 
    showWeeks: false 
} 

編輯: 看來角度提供uibDateParser解析字符串到日期的對象。然而,下面就會失敗:

$scope.dateOfBirth = $uibDateParser.parse('05/12/2004', 'dd/MM/yyyy') 

回答

1

它沒有得到填充,因爲它是一個字符串,而不是一個有效的Date。所以,如果你改變它,

$scope.dateOfBirth = new Date("05/12/2004"); 

..它會工作!此外,請注意new Date(..)將帶有本地時區,所以如果您想更改時區或任何關於日期操作的內容,momentjs是一個很好的庫來處理這些。

編輯:如果你的格式爲dd/MM/yyyy,你也許可以做這樣的事情在有效日期轉換:

var parts ='05/12/2004'.split('/'); 
$scope.dateOfBirth = new Date(parts[2],parts[1]-1,parts[0])); 
+0

我只是想如你所說。它不是填充05/12/2004,而是在文本框中填充12/05/2004。此外,是否有可能自動綁定日期格式的文本到datePicker? –

+0

@saravana_pc無法將textformat綁定爲日期AFAIK。對於前者,更新了答案。 – tanmay