Angular Query黑魔法

Query一个Directive,拿到这个Directive的host Element:


更进一步地,通过Query,可以从指定的Element的Injector(View Injector)中获取你想要的服务:

在这个例子中,我们想要query的服务就是Component实例。

定义一个抽象类(而不是interface,因为运行时没有interface,不能作为DI token)。这个抽象类将Component类与query使用者解耦,使用query的时候不需要知道Component的类型,而是通过这个抽象类的API与Component进行交互。

让我们想要query的component实现这个抽象类。当然,我们还要在相应的View Injector中Provide这个服务:

解决Typescript报错:

https://youtu.be/EoSn8qASqQA?...

阅读 888

推荐阅读
csRyan的学习专栏
用户专栏

分享对于计算机科学的学习和思考,只发布有价值的文章:对于那些网上已经有完整资料,且相关资料已经整...

65 人关注
77 篇文章
专栏主页