【发布时间】:2015-06-23 00:40:00
【问题描述】:
我有一个非常简单的角度滤镜。
这个过滤器输入一个枚举成员(这里称为 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 作为类型?
有什么更好的方法来解决它?
【问题讨论】:
标签: javascript angularjs typescript