如何根据角度给出的变量显示内容

时间:2014-05-10 09:00:03

标签: javascript angularjs filter

我需要在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也链接到主模块。

我是否还必须将过滤器引入控制器?

我使用了错误的方法吗?

1 个答案:

答案 0 :(得分:0)

在表达式中评估game.complexity后,它将作为字符串输出。这意味着你的switch case应该是字符串而不是整数 - “1”而不是1,等等。

编辑:我错了,表达式被计算成一个字符串,但过滤器仍在该表达式中,因此它仍然以数字形式接收game.complexity。问题是你在评论中解决的问题。