我有{{ index+1 }}
我需要显示"一个"如果上面的表达式中的数字为1。
显示"两个"如果上面的表达式中的数字是2,那么最多为6 显示"六"如果数字是6。
由于我只需要这些1到6,所以我不喜欢使用基于JavaScript的数字到字格式转换并将其用作上述表达式中的过滤器。因为,grunt报告了该解决方案中的大量问题,所以我正在寻找一个简单的条件显示,仅用于1-6之间的这个边界。
答案 0 :(得分:2)
我会使用过滤器执行此操作,但您也可以使用函数。
一个函数的例子是:
{{vm.convertToWord(1)}}
会打电话给这个并给出一个'
var smallNumbers = ["zero", "one", "two", "three", "four", "five", "six"];
vm.convertToWord = function(input) {
input = parseInt(input, 10);
if (input < smallNumbers.length) {
return smallNumbers[input];
} else {
return "not valid";
}
};
有关使用过滤器和函数的示例,请参阅此Codepen。
答案 1 :(得分:0)
有时当我遇到小边缘情况时,我只会将内容包装在<span>
标记中,并使用ng-if
指令使其显示在正确的条件下。
要将六个边缘情况压缩成一行,您只需使用数组评估,因为{{["one", "two"][0]}}
将评估为one
结合这些想法我们得到类似的东西:
<span ng-if="0 <= index && index <= 5"> {{["one", "two", "three", "four", "five", "six"][index]}}</span>
<span ng-if="index < 0 || index > 5">{{index + 1}}</span>