我是一个有用的助手,可以为您翻译文本。
我有一个非常简单的Angular过滤器。
该过滤器接受枚举类型(此处称为XEnum)的成员作为输入,并返回表示枚举中该成员的字符串:
module Filters {
"use strict";
export function XEnumToStringFilter() {
return ( input: XEnum ) => {
return XEnum[input];
}
}
}
[...]
module Model {
export enum XEnum{
Started = 0,
Stopped = 1
}
}
[...]
app.filter( "xEnumToStringFilter", [Filters.XEnumToStringFilter] );
当我在视图中使用xEnumToStringFilter时,它非常有效:
{{0 | etatTransfertEnumToStringFilter}}
输出 Started
{{1 | etatTransfertEnumToStringFilter}}
输出 Stopped
但是我想在我的服务中使用这个过滤器:
app.service( "serviceUsingXEnum",
["xEnumToStringFilter",
Services.ServiceUsingXEnum] );
但是在我的服务构造函数中,我只收到一个奇怪的错误:
module Services {
"use strict";
export class ServiceUsingXEnum {
constructor(
private xEnumToStringFilter: Filters.XEnumToStringFilter // error here
) {
// some beautiful code ...
}
}
}
模块
Filters
没有导出成员XEnumToStringFilter
即使我的自动完成提示存在它!
我想使用依赖注入,我可以只做Filters.XEnumToStringFilter()(somethingXEnum)
,但那很糟糕!
为什么我不能将XEnumToStringFilter用作类型?
有更好的解决方法吗?