我在控制器中设置了范围变量
$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}}
我的问题是当我在输入标签中设置“max”参数时,我无法看到显示的范围变量,即{patientState.stateChangeDate}}没有显示任何内容。
但是如果从输入标签中删除“max”参数,我可以看到显示范围变量。
我无法弄清楚为什么?
答案 0 :(得分:2)
我觉得问题是因为您格式化了$scope.today
日期
以相同的格式转换它们($scope.today
和$scope.patientState.stateChangeDate
)并检查问题是否已解决!
此处的问题是您将$scope.today
格式化为'YYYY-MM-DD'
格式value of today is converted for 12AM
。但是,$scope.patientState.stateChangeDate
current time
始终大于$scope.today
。
答案 1 :(得分:0)
如果您将最大日期设置为今天并选择上一个日期,那么它将在$ scope变量中更新,但如果您选择功能日,则字段验证将为false,并且不会设置日期变量。
看来它在ivalidated时从作用域中删除了整个变量。
您还可以检查输入字段是否正在添加css类“ng-invalid”
将以下css添加到您的输入中,看看,每当您没有获得模板值时,该字段将无效(红色)。
input {
transition:all linear 0.5s;
background: transparent;
}
input.ng-invalid {
color:white;
background: red;
}