Ant*_*gov 2 metadata typescript angular
我有一个装饰模型类:
@Api('payments/deposit')
export class DepositsModel {
public id: number;
public created_at: Date;
...
Run Code Online (Sandbox Code Playgroud)
在角度组件构造函数中,我正在注入指向使用我的模型类的数据服务:
...
public constructor(
private $api: GridApiService<DepositsModel>
...
) {
this.service = new GridService($api);
...
}
...
Run Code Online (Sandbox Code Playgroud)
所以,我的酷组件有一个很酷的服务,巫婆知道它使用的数据类型...
应该知道..
但是如何在GridApiService中获取模型的元数据呢?我试过了:
@Injectable()
export class GridApiService<T>{
constructor(
$http: HttpClient,
) {
let api = Reflect.getMetadata('Api', T);
}
Run Code Online (Sandbox Code Playgroud)
并得到 错误消息:'T'仅引用类型,但在此处用作值.
UPDATE
你能否告诉我另一种将初始化数据传递给我的GridApiService的方法,应该通过DI注入,而不是用new关键字创建?
TypeScript类型在运行时不存在,但可以通过类装饰器作为元数据发布的类型除外.Angular DI 不能发出通用类型,也不存在通用类型.GridApiService<DepositsModel>除了类型检查之外什么都不重要.
GridApiService和之间的连接DepositsModel应该用类设计来表达,例如继承:
class DepositsGridApiService extends GridApiService {
Model = DepositsModel;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
796 次 |
| 最近记录: |