2016-09-15 49 views
1

我有一個帶有datePicker的輸入類型文本。格式ng模型的初始值(使用datePicker的輸入類型文本)

<input id="start-date" style="width: 230px;" close-text="Close" 
type="text" ng-model="startDate" datepicker-popup="dd-MM-yyyy" 
ng-required="true"/></div> 

當輸入顯示時,我必須顯示它的初始值。問題是,該值顯示格式爲:

Wed Jun 15 2016 10:48:49 GMT+0000 (WET)

它只是選擇從我可以看到我想要的(DD-MM-YYYY)格式的日期選擇一個日期之後。爲了解決這個問題,我補充說:

$scope.$watch('startDate', function (newValue) { 
    $scope.startDate = $filter('date')(newValue, 'dd-MM-yyyy'); 
}); 

但我得到這個錯誤:日期選擇器指令:「NG-模式」的值必須是Date對象,一些因爲01.01.1970或字符串毫秒錶示RFC2822或ISO 8601的日期。

我怎樣才能解決這個問題呢?

謝謝!

+0

在NG-模式?像這樣:'ng-model =「startDate | date」'? –

+0

你使用AngularUI datepicker? – Rakeschand

回答

0

假設你正在使用的AngularUI日期選擇和你的NG-型號初始值沒有被格式化只需添加下面的指令到您的項目將解決該問題:

directive('datepickerPopup', function(){ 
    return { 
    restrict: 'EAC', 
    require: 'ngModel', 
    link: function(scope, element, attr, controller) { 
     //remove the default formatter from the input directive to prevent conflict 
     controller.$formatters.shift(); 
    } 
    } 
}) 
+0

謝謝你的回覆,但是我已經在ui-bootstrap-tpls.js文件中有了這個指令,但是我沒有這個控制器。$ formatters.shift();' –

+0

我要不要在這裏添加它文件? –

+0

只需添加一個新的文件作爲一個新的指令,就像你的控制器 – Rakeschand