如果绑定为空/未定义(带过滤器),Angularjs模板默认值
Angularjs Template Default Value if Binding Null / Undefined (With Filter)
我有一个模板绑定,它显示了一个名为'date'的模型属性,它是一个日期,使用了Angular的日期过滤器。
<span class="gallery-date">{{gallery.date | date:'mediumDate'}}</span>
到目前为止一切顺利。但是目前,如果日期字段中没有值,绑定将不显示任何内容。但是,如果没有日期,我希望它显示字符串'各种'。
我可以使用二进制运算符得到基本逻辑:
<span class="gallery-date">{{gallery.date || 'Various'}}</span>
但是我不能让它与日期过滤器一起工作:
<span class="gallery-date">{{gallery.date | date:'mediumDate' || "Various"}}</span>
我如何使用二进制操作符旁边的日期过滤器?
我所需要做的就是把表达式的左边用软括号括起来:
<span class="gallery-date">{{(gallery.date | date:'mediumDate') || "Various"}}</span>
我设置了如下过滤器:
angular.module('app').filter('ifEmpty', function() {
return function(input, defaultValue) {
if (angular.isUndefined(input) || input === null || input === '') {
return defaultValue;
}
return input;
}
});
可以这样使用:
<span>{{aPrice | currency | ifEmpty:'N/A'}}</span>
<span>{{aNum | number:3 | ifEmpty:0}}</span>
以防您想尝试其他方法。
基于具有以下结构的三元操作符:
condition ? value-if-true : value-if-false
,结果:
{{gallery.date?(gallery.date | date:'mediumDate'):"Various" }}
我如何使用二进制运算符旁边的日期过滤器?
<span class="gallery-date">{{gallery.date | date:'mediumDate' || "Date Empty"}}</span>
你也可以试试:
<span class="gallery-date">{{ gallery.date == 'NULL' ? 'mediumDate' : "gallery.date"}}</span>
我真的很喜欢这个答案,使用ngBind,你的默认文本可以只存在于元素主体中,然后如果ngBind的值是非null/undefined,你的内容就会被自动替换,一切都很顺利
angularjs设置在求值前显示的默认值
在cshtml中,
<tr ng-repeat="value in Results">
<td>{{value.FileReceivedOn | mydate | date : 'dd-MM-yyyy'}} </td>
</tr>
在你的JS文件中,可能是app.js,
在app.controller之外,添加下面的过滤器。
这里的"mydate"是用来解析日期的函数。这里的"app"是包含angular.module
的变量app.filter("mydate", function () {
var re = /'/Date'(([0-9]*)')'//;
return function (x) {
var m = x.match(re);
if (m) return new Date(parseInt(m[1]));
else return null;
};
});
相关文章:
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- 当数组在angularjs中没有可比较的值时,如何分配默认值
- AngularJS-选择,设置编辑/新建的默认值
- AngularJS-放置第三方插件默认值的位置
- 使用angularJS设置HTML5日期输入字段的默认值
- 使用 angularjs 设置下拉列表的默认值
- 将默认值传递给 AngularJS 服务
- AngularJS选择带有ng-model和ng-repeat的默认值,而不是ng-option
- AngularJS - 选择 - 服务器调用的默认值
- 如何从 AngularJS 的下拉框中设置选择默认值
- Angularjs URL 在文本区域中的默认值中
- AngularJS更新ng-model的值以设置默认值
- 使用 angularjs 将默认值分配给多选下拉列表
- angularjs-lib中的一些prbm默认值在select if(value和name)相同时不起作用
- 在angularjs中选择,而不是选择默认值
- 如何使用AngularJS设置数据库中复选框中选中的默认值
- AngularJS-多重选择,动态设置默认值select
- AngularJS文本输入使用ng模型,但需要默认值,而不使用value=或ng-init=
- angularjs ng模型设置默认值