2017-01-24 96 views
0

我有很多意見,每個與js控制器有關的使用angularjs。 我有一個購買的形式,其中有:angularjs過濾日期,日期格式錯誤

<input type="date" ng-model="currentDate"> 

在控制器JS我有:

$scope.currentDate=$filter('date') (new Date(), 'yyyy-MM-dd'); 

我用我的一切形式的方法和工作正常,但在購買形成日期沒有設置爲今天,並在控制檯的頁面給了我:

angular.js:12450Error: [ngModel:datefmt] http://errors.angularjs.org/1.4.6/ngModel/datefmt?p0=2017-01-24 
    at angular.js:38 
    at Array.<anonymous> (angular.js:21769) 
    at Object.<anonymous> (angular.js:25349) 
    at n.$digest (angular.js:15751) 
    at n.$apply (angular.js:16030) 
    at angular.js:1660 
    at Object.e [as invoke] (angular.js:4476) 
    at d (angular.js:1658) 
    at yc (angular.js:1678) 
    at Xd (angular.js:1572) 

我沒有捕捉到問題出在哪裏。我檢查了注入器($ filter),檢查了ng模型是否重複,沒有任何結果。任何想法?

+1

如果你檢查錯誤鏈接(https://docs.angularjs.org/error/ngModel/datefmt?p0=2017-01-24),它實際上會給你錯誤的原因:'模型不是日期對象「。所以'$ scope.currentDate'是一個字符串,不是日期 - >拋出錯誤 – Fissio

+0

是的,我檢查了鏈接,我定義了一個包含日期的變量,問題在哪裏? –

+2

你的變量不是日期,它是一個字符串。只要做'$ scope.currentDate = new Date()' – Fissio

回答

2

All date-related inputs like require the model to be a Date object. If the model is something else, this error will be thrown

這是在提供的錯誤url中找到的解釋。

$scope.currentDate = new Date(); 

這應該適合你。您提供格式化的日期字符串作爲輸入,這不是預期的。

+0

工作謝謝 –