我正在编写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模板文件一起使用。该HTML文件如下所示:

<div ng-controller="MyController as myCtrl" class="full_screen_container">
    MyString = {{myCtrl.my_name | lowercase}}
</div>


有用。浏览器中的输出如下所示:

MyString = hello


但是现在,我不希望my_name小写。
我希望它是titlecased。但是,当我在lowercase中将单词titlecase更改为my_fragment.html时,它失败了。这是我的浏览器中显示的内容:

MyString = {{myCtrl.my_name | lowercase}}


这是我在Chrome开发者控制台中看到的错误:
javascript - 为什么 Angular 标题大小写过滤器对我不起作用?-LMLPHP

为什么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 - 为什么 Angular 标题大小写过滤器对我不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52324514/

10-09 06:27