[英]Angular ng-if expression on html view
我想在我的html中顯示一個日期值(帶有管道表達式),但前提是該日期存在。 如果該字段返回為空,則在控制器js代碼中將其替換為N/A
我認為這應該很簡單,但是在使其工作時遇到了一些麻煩。
當前顯示日期,如果date為null,則顯示空白。
<div> <label> {{ctrl.data.myDate | stringToDate:'yyyy-MM-dd'}} </label> </div>
我正在努力 :
<div> <label> <span ng-if="ctrl.data.myDate!='N/A'"> {{ctrl.data.myDate | stringToDate:'yyyy-MM-dd'}} </span> </label> <label> <span ng-if="ctrl.data.myDate=='N/A'"> N/A </span> </label> </div>
但是,當日期為N/A
時,它將顯示null
。
這有效,但是沒有管道表達式-但是,我需要正確地管道日期字符串:
<span>{{vm.data.myDate==='N/A' ? "N/A" : vm.data.myDate }}</span>
更新
我正在嘗試使用Angular $filter
提供程序的另一種方法。 因此,如果myDate
不為空,則可以在js控制器中設置日期格式:
vm.data.myDate = $filter('date')(new Date(data[0].closeDate), 'yyyy-MM-dd');
<span>
{{ (vm.data.myDate==='N/A' || !vm.data.myDate) ? "N/A" : (vm.data.myDate | date:'yyyy-MM-dd') }}
</span>
在一個變量中包含視圖值和模型值是錯誤的方法。 您應遵循以下條件之一:
僅存儲模型值,因此js中的日期可以為null,而html中的日期:
{{ctrl.data.myDate | date:'yyyy-MM-dd' || 'N/A'}}
或者,您也存儲視圖值,那么應該在控制器中解析它:
ctrl.data.myDateText = $filter('date')(ctrl.data.myDate, 'yyyy-MM-dd'); || 'N/A'
in html: {{ctrl.data.myDateText}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.