Pal*_*diN 3 typescript angular2-template angular
我想创建一个可以在角度模板中使用的可重用函数.我创建了一个函数:
export function stringSplit(string : string, separator : string = '/') : any {
return string.split(separator);
}
Run Code Online (Sandbox Code Playgroud)
我试图像这样添加到模板中:
<p> stringSplit('hello/user') </p>
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
ERROR TypeError: _co.stringSplit is not a function
Run Code Online (Sandbox Code Playgroud)
我不确定如何在角度中创建和使用全局函数.
我们可以角度执行此操作吗?
在这种情况下,最佳解决方案是什么?
答案是你不应该.依赖注入是Angular提供的一个功能强大的工具,其唯一目的是在不维护全局范围的情况下跨组件共享功能.你应该做的是创建一个服务,向它添加一个方法,将你的服务注入任何需要它的组件,然后在那里调用它.
从你的问题来看,有一个管道来执行你需要的操作会很好.管道用于操纵任何模板内的数据(使该功能对于属于属于模块的所有模板实际上是全局的,这些模块可以声明或导入管道).你可以这样写:
@Pipe({name: 'splitString'})
export class SplitString implements PipeTransform {
transform(value: string, separator: string): string[] {
return value.split(separator);
}
}
Run Code Online (Sandbox Code Playgroud)
在你的HTML中:
<p>{{ myString | splitString : ',' }} </p>
Run Code Online (Sandbox Code Playgroud)
了解更多关于管道在这里.
| 归档时间: |
|
| 查看次数: |
12506 次 |
| 最近记录: |