2016-03-01 82 views
0

我需要操作每個$ firebasearray元素以在日期中將日期字段(保存爲字符串'YYYYMMDD')轉換爲相應標記的視圖:如何初始化日期元素以初始化Firebase/AngularJS中的模型

<td width="7%"><input type="date" class="form-control" ng-model="p.myDate"></td> 

在這種情況下上面的線是NG-重複與來自array.I的「p」的元件不能直接分配包含我日期(格式化爲「YYYYMMDD」)的日期的字符串內領域。有必要將其轉換爲以前的日期。

怎麼樣?

+0

Firebase存儲JSON數據,並且日期值不是已知的類型。請參閱http://stackoverflow.com/questions/30021133/how-do-you-save-a-date-field-in-firebase-using-angularfire –

+0

我知道...這就是爲什麼我保存日期爲字符串。 – GCoe

+0

上面的代碼片段不會將其另存爲字符串。如果您在某處執行轉換,則也要添加該代碼。見http://stackoverflow.com/help/mcve –

回答

0

將moment.js庫添加到您的項目中。如果p.myDate是一個日期字符串,並且您想要一個日期對象,請嘗試使用它。

for(var i = 0; i < $scope.yourArray.length; i++) { 
    if(moment($scope.yourArray[i].myDate).isValid()) { 
    //if you want to keep the date string 
    //$scope.yourArray[i].myDateString = $scope.yourArray[i].myDate; 
    $scope.yourArray[i].myDate = new Date(moment($scope.yourArray[i].myDate)); 
    } 
    else { 
    console.log("not a valid date", $scope.yourArray[i].myDate); 
    } 
} 

如果沒有空格,或者 - 在YYYY,MM和DD之間,您應該重新格式化字符串。讓我知道如果是這樣,你需要幫助。

+0

嗨,有趣的做法。 轉換正常,數組中的日期已從'YYYYMMDD'正確轉換爲'dd/MM/YYYY',但INPUT需要日期對象,然後出現此錯誤:angular.js:12520錯誤:[ngModel: datefmt]預計'03/01/2016'爲日期... – GCoe

+0

嘗試替換$ scope.yourArray [i] .myDate = moment($ scope.yourArray [i] .myDate); with $ scope.yourArray [i] .myDate = new Date(moment($ scope.yourArray [i] .myDate)); – pyromancer2

+0

嗨,pyromancer2。 有些錯誤...謝謝 – GCoe