2016-02-03 108 views
0

我已經在我的控制器設置範圍變量Scope變量

$scope.patientState = {}; 
var dateTime = new Date(); 
$scope.today = moment(dateTime).format("YYYY-MM-DD"); 
$scope.patientState.stateChangeDate = new Date(); 

這些,我用我的視圖設置日期的默認值:

<input type="date" ng-model="patientState.stateChangeDate" max="{{today}}"/> 

接下來我展示視圖中的範圍變量爲

{{patientState.stateChangeDate}} 

我的問題是當我在輸入ta中設置「max」參數時g我無法看到顯示的範圍變量,即{patientState.stateChangeDate}}不顯示任何內容。

但是,如果從輸入標籤中刪除「max」參數,我可以看到顯示的範圍變量。

我無法弄清楚爲什麼?

回答

0

如果你設置的最大日期是今天,並選擇以前的日期,那麼它將在$ scope變量中得到更新,但是如果你選擇特徵日,那麼字段驗證將是假的,它不會設置日期變量。

看起來像是當ivalidated時從整個範圍中刪除整個變量。

您還可以檢查檢查輸入字段被添加CSS類「NG-無效」

添加下面的CSS的輸入和看到的,當你沒有得到模板值的字段無效(紅色)。

input { 
    transition:all linear 0.5s; 
    background: transparent; 
} 
input.ng-invalid { 
    color:white; 
    background: red; 
} 
2

我覺得這個問題是因爲你已經格式化$scope.today日期

兩者($scope.today & $scope.patientState.stateChangeDate)在相同的格式轉換,並檢查你的問題就解決了!

這裏的問題是當你格式化$scope.today'YYYY-MM-DD'格式,value of today is converted for 12AM。但是您的$scope.patientState.stateChangeDatecurrent time,它始終大於$scope.today

+0

感謝您的回答,我查了一下。如果我回滾到以前的日期,它的工作。 –