[英]Scope variable not getting displayed
我在控制器中設置了范圍變量
$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”參數,則可以看到顯示的范圍變量。
我不知道為什么?
我覺得問題是因為您格式化了$scope.today
日期
轉換它們兩個格式( $scope.today
& $scope.patientState.stateChangeDate
)的格式相同,然后檢查問題是否解決!
這里的問題是當您將$scope.today
格式化$scope.today
'YYYY-MM-DD'
格式時, value of today is converted for 12AM
的value of today is converted for 12AM
。 但是您的$scope.patientState.stateChangeDate
是current time
,始終大於$scope.today
。
如果將最大日期設置為今天並選擇上一個日期,則它將在$ scope變量中更新,但是如果選擇功能日期,則字段驗證將為false,並且不會設置日期變量。
看起來好像它在驗證時從作用域中刪除了整個變量。
您還可以檢查檢查輸入字段是否與CSS類“ ng-invalid”一起添加
將以下CSS添加到您的輸入中,然后查看,只要不獲取模板值,該字段將為無效(紅色)。
input {
transition:all linear 0.5s;
background: transparent;
}
input.ng-invalid {
color:white;
background: red;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.