2016-02-03 114 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

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