我需要在AngularJS中显示一个归因于数字的单词。 通过控制器,我向视图发送变量$ game.complexity,复杂度可以是1到4之间的数字。我想取这个数字并将其显示为单词:
1 --->易
2 --->中等
我最初的想法是,它可能适用于cutstom过滤器:
var filtersModule = angular.module("ttmatchApp.Filters", [])
filtersModule.filter("complexityFilter", function(){
return function(value){
switch(value)
{
case 1:
return "easy"
break;
case 2:
return "medium"
break;
case 3:
return "hard"
break;
case 4:
return "very hard"
break;
}
}
})
并将其称为:
<p>{{game.complexity | complexityFilter:game.complexity}} complexity</p></div>
我也尝试过这样:
<p>{{game.complexity | complexityFilter}} complexity</p></div>
我在控制器中定义$scope.game
,并通过json文件为其提供必要的数据。 game.name
等其他范围元素运行良好,并显示。
filtersModule
也链接到主模块。
我是否还必须将过滤器引入控制器?
我使用了错误的方法吗?
答案 0 :(得分:0)
在表达式中评估game.complexity后,它将作为字符串输出。这意味着你的switch case应该是字符串而不是整数 - “1”而不是1,等等。
编辑:我错了,表达式被计算成一个字符串,但过滤器仍在该表达式中,因此它仍然以数字形式接收game.complexity。问题是你在评论中解决的问题。