javascript - 为什么 Angular 的 titlecase 过滤器对我不起作用?
问题描述
我正在编写一个 AngularJS 单页应用程序。
在 index.html 文件中,我有以下几行:
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js">
</script>
我已经定义了一个控制器名称 MyController。该控制器有一个名为的变量my_name
,其中包含字符串“HELLO”。控制器使用一个名为my_fragment.html
. 这是该 HTML 文件的样子:
<div ng-controller="MyController as myCtrl" class="full_screen_container">
MyString = {{myCtrl.my_name | lowercase}}
</div>
有用。浏览器中的输出如下所示:
MyString = hello
但是现在,我不想my_name
被小写。我希望它被命名为. 但是当我将单词更改lowercase
为titlecase
in 时my_fragment.html
,它失败了。这是我的浏览器中显示的内容:
MyString = {{myCtrl.my_name | lowercase}}
为什么titlecase
行不通?我怎样才能让它工作?
解决方案
您提供的链接适用于您使用 AngularJS (1.X) 的 Angular 2+,因此该管道不存在,但是您可以像这样创建自己的 titlecase 函数
function titleCase(str) {
return str.toLowerCase().replace(/\b\S/g, function(t) { return t.toUpperCase() });
}
并像这样实施它......
MyString = titleCase(myCtrl.my_name)
myCtrl.titleCase(myCtrl.my_name)
如果上述方法不起作用,您可能必须这样做。
推荐阅读
- javascript - 响应式设计出错了
- amazon-web-services - Opsworks/Chef 11.10.4 简单模板配方未创建任何文件
- python - Flask Web 服务,可以访问外部摄像头并发送视频流
- sql - 文件记录与 psql \copy 命令中的查询记录不匹配
- c# - XSL 处理器的添加参数功能问题
- javascript - 使用 k6 进行 Meteor 应用程序负载测试,等待 body 元素
- linux - 共享 Xauthority 文件
- kubernetes - Kubernetes calico 网络策略
- python - 如何通过套接字以“块”形式发送文件?
- node.js - Swagger Codegen - 名称响应的意外缺失属性