如何在前端处理后端的枚举

时间:2016-01-19 14:37:23

标签: java angularjs

我在前端AngularJS 1.4和Backend Java中使用,我有很多选项可以在前端选择,例如国家:

GERMANY
FRANCE
USA
RUSSIA

枚举是用大写字母书写的,我会在前端自定义(例如法国将成为法国)。

我现在的问题是,如果在前端有指令或任何其他支持。

2 个答案:

答案 0 :(得分:0)

查看此链接 http://hello-angularjs.appspot.com/angularjs-create-custom-filter

它有一个自定义过滤器,可以帮助你。

以下是上面给出的链接中的代码。

<!DOCTYPE html>

<html ng-app="HelloApp">
<head>
    <title></title>
</head>
<body ng-controller="HelloCtrl">
  <form>
      <input type="text" ng-model="name"/>
    </form>
    <div>{\{name|titlecase}}</div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
  <script type="text/javascript">
        // Code defining custom module consisting of a filter
        // The module needs to be included as dependency for using the filter, titlecase
        //
        angular.module('CustomFilterModule', [])
            .filter( 'titlecase', function() {
                return function( input ) {
                    return input.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
                }
            });
        // Angular App on this page 
        // Included CustomFilterModule as dependency
        //
        angular.module('HelloApp', [ 'CustomFilterModule'])
            .controller('HelloCtrl', ['$scope', function($scope){
                $scope.name = '';
            }])
    </script>
</body>
</html>

答案 1 :(得分:0)

在视图中:

<select ng-model="selectedCountry" ng-options="country as country.name for country in countries | filter:filterUpperCamelCase"></select>

在控制器中:

   $scope.countries= [
     {name:"SPAIN"}, 
     {name:"GERMANY"}
   ];

    $scope.filterUpperCamelCase = function(element){
        element.name = element.name.toLowerCase();
        element.name = element.name.charAt(0).toUpperCase() + element.name.slice(1);
        return element;
    };