我正在订购我的数据并且其工作正常,除了一些字段为空或没有价值.订购时,这些空字段首先出现.例如,在订购数字时,我们会在获得"0"值之前得到一个巨大的空列表.
我这样做是这样的:
ng-click="predicate = 'name'; reverse=!reverse"
Run Code Online (Sandbox Code Playgroud)
和
ng-repeat="name in names | orderBy:predicate:reverse"
Run Code Online (Sandbox Code Playgroud)
JSFiddle:http://jsfiddle.net/JZuCX/1/
有一种简单优雅的方法来解决这个问题吗?无论如何,我希望空场能够持久.
而不是必须为每次调用date过滤器定义自定义格式,有没有办法全局定义默认格式(除了'medium')?
我希望将格式设置在一个文件中,而不是在我的代码中的所有位置(日期格式可能会在将来更改,并且在一个文件中进行修改比在许多文件中进行更改要好得多).
这就是我现在正在做的事情(每次定义日期格式):
{{systemTime | date:'dd MMMM @ HH:mm:ss'}}
{{modifiedTime | date:'dd MMMM @ HH:mm:ss'}}
{{getShippedTime() | date:'dd MMMM @ HH:mm:ss'}}
etc.
Run Code Online (Sandbox Code Playgroud)
我正在考虑创建一个自定义过滤器(让它调用它myDate),它将充当包装器,然后date使用我的自定义格式将日期字符串传递给Angular 过滤器,因此我的代码可能如下所示:
{{systemTime | myDate}}
{{modifiedTime | myDate}}
{{getShippedTime() | myDate}}
etc.
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何使myDate滤镜指向角度date滤镜.
谢谢你的帮助.
我想修改currency过滤器以处理输入值中的自定义货币格式.
(例如,AUD 3.00 -> $3.00).
一种选择是从头开始编写我自己的过滤器.然而,这似乎有很多重复,考虑到现有的滤镜很棒,我只需先从前面修剪几个字符.
理想情况下,我会有这样的事情:
.filter('money', function($filters) {
return function(text){
var currency = text.substring(4)
return $filters('currency')(currency)
};
});
Run Code Online (Sandbox Code Playgroud)
有可能:
formatNumber()显示还有哪些其他选择可供我使用?
值null是表示null或"空"值的JavaScript文字,即不存在对象值.它是JavaScript的原始值之一.
function getMax(arr){
return Math.max.apply(null, arr);
}
Run Code Online (Sandbox Code Playgroud)
不明确传递关键字this更清晰,或至少更具可读性?然后,在这一点上,我可能不明白你为什么要使用null.
当我按ASC排序时,我需要在顶部记录带有空值的记录
<tr ng-repeat="footballer in footballers=(footballers | orderBy:predicate)">
predicate : ['team.name','id]
Run Code Online (Sandbox Code Playgroud)
有些球员没有团队,使团队object == null和team.name==null,我需要让他们在上面
我想重写sort函数,但我需要保存谓词
我想让Angular的数字过滤器具有一个相同的格式,无论选择的本地化.
所以,从GitHub中的Angular源代码我看到过滤器的实现如下所示:
function numberFilter($locale) {
var formats = $locale.NUMBER_FORMATS;
return function(number, fractionSize) {
// if null or undefined pass it through
return (number == null)
? number
: formatNumber(number, formats.PATTERNS[0], formats.GROUP_SEP, formats.DECIMAL_SEP,
fractionSize);
};
}
Run Code Online (Sandbox Code Playgroud)
我希望我的数字看起来像这样:123 456.78.含义,
formats.GROUP_SEP = " "; // Always, disrespect locale
formats.DECIMAL_SEP = "."; // Always, disrespect locale
Run Code Online (Sandbox Code Playgroud)
我看到这篇关于覆盖现有过滤器的文章,但我无法弄清楚如何在我的案例中使用它来实现我想要的.