AngularJS-格式文本从JSON返回到标题大小写
我有一个从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
$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
不是inng
组件,如果你不实现它,它将无法工作。请看这个问题的公认答案。正如@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>