Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-格式文本从JSON返回到标题大小写_Angularjs_Angularjs Directive_Angularjs Scope_Angularjs Ng Repeat - Fatal编程技术网

AngularJS-格式文本从JSON返回到标题大小写

AngularJS-格式文本从JSON返回到标题大小写,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,我有一个从JSON文件检索数据的服务 数据中的一些数据都是大写的,例如: $scope.FootballClubs = [{ CompanyName: [MANCHESTER UNITED, LIVERPOOL FOOTBALL CLUB, CHELSEA, WIGAN UNTIED, LEICESTER CITY] }]; 在我的HTML中,我只是简单地介绍了上述内容: <div ng-repeat="name in FootballClubs"> {{ name

我有一个从JSON文件检索数据的服务

数据中的一些数据都是大写的,例如:

$scope.FootballClubs = [{
    CompanyName: [MANCHESTER UNITED, LIVERPOOL FOOTBALL CLUB, CHELSEA, WIGAN UNTIED, LEICESTER CITY]
}];
在我的HTML中,我只是简单地介绍了上述内容:

<div ng-repeat="name in FootballClubs">
    {{ name.CompanyName }}
</div>
我想展示的是:

Manchester United
Liverpool Football Club
Chelsea
Wigan United
Leicester City

让我提供一种非指导性的方法,它可能更容易实现,但功能不太强大,并且只依赖于UI解决方案。首先,将它们更改为小写
{{name.CompanyName.toLowerCase()}}

我认为最简单的方法就是让CSS格式化它(通过样式标签、类等)


{{name.CompanyName.toLowerCase()}
下面是一个演示:

a是实现此目的的理想解决方案

<div ng-repeat="name in FootballClubs">
    {{ name.CompanyName | titleCase }}
</div>

只需在HTML中使用这个div

  <div ng-repeat="name in FootballClubs">
     {{ name.CompanyName | titleCase:CompanyName }}
 </div>

{{name.CompanyName}标题:CompanyName}

对,所以首先让它们都小写,然后让css大写。我已经更新了答案。我更新了plunker链接,尽管代码在我的答案中。这应该是可接受的答案。这比使用过滤器好得多。@user2847643-如果你能证明为什么它比过滤器好,那么我会的。@OamPsy,nicer是相对的,我会说用最适合你的答案。我的答案是作为一个css解决方案b/c,它简单得多,不需要过滤器,也不需要复杂的正则表达式,但这就是我自己。
titleCase
不是in
ng
组件,如果你不实现它,它将无法工作。请看这个问题的公认答案。正如@JordiNebot提到的,titleCase不是Angular的默认过滤器。如果使用它,在执行过程中会出现错误。
<div ng-repeat="name in FootballClubs">
    {{ name.CompanyName | titleCase }}
</div>
angular.module('myFootballModule', [])
  .filter('titleCase', function() {
    return function(input) {
      input = input || '';
      return input.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
    };
  })
  <div ng-repeat="name in FootballClubs">
     {{ name.CompanyName | titleCase:CompanyName }}
 </div>