我的过滤器不起作用

时间:2014-10-10 19:46:28

标签: angularjs angularjs-filter

我正在尝试将状态值从数字更改为“文字”

我想知道我怎么能解决它,我做错了什么?提前谢谢

      <table>
         <tr ng-repeat="x in Id">
                <td>{{ x.id }}</td>
                <td>{{ x.status | status}}</td>
            </tr>
        </table>

当我写| status&lt; - 它崩溃了整个ng重复,没有任何显示。

    var app = angular.module('customersController', []);

    function customersController($scope, $http) {

     $http.get("localhost")
            .success(function (response) {
                $scope.Id = response;

            });

    app.filter('status', function () {
        return function (input) {
            var statu;
            switch (input) {
                case 10:
                    statu = 'Bronze';
                    break;
                case 20:
                    statu = 'Silver';
                    break;
                case 30:
                    statu = 'Gold';
                    break;
                case 40:
                    statu = 'Elite';
                    break;

            }

            return statu;
        };
    });

1 个答案:

答案 0 :(得分:1)

您正在控制器中定义过滤器。那是无效的。您只能在配置阶段,应用程序启动和控制器实例化之前向模块添加过滤器。代码应该是:

var app = angular.module('customersController', []);
app.filter('status', function () {
    return function (input) {
        var statu;
        switch (input) {
            case 10:
                statu = 'Bronze';
                break;
            case 20:
                statu = 'Silver';
                break;
            case 30:
                statu = 'Gold';
                break;
            case 40:
                statu = 'Elite';
                break;
        }
        return statu;
    };
});

app.controller('customersController', function($scope, $http) {
     $http.get("localhost")
        .success(function (response) {
            $scope.Id = response;
        });
});