gpt4 book ai didi

javascript - 如何动态选择要在指令/ Controller 中使用的存储库/服务?

转载 作者:行者123 更新时间:2023-12-03 11:33:26 24 4
gpt4 key购买 nike

我有一个从数据库获取数据的指令,但我希望它在项目的不同位置使用不同的存储库(具有相同的 API)。传入的数据具有相似的字段,因此这不是问题。有没有办法将其作为参数通过指令标签传递,例如

<div my-directive="my-directive" service="Services.MovieService"></div>
<div my-directive="my-directive" service="Services.ActorService"></div>
或者什么是最佳实践,这样我就不会使用代表服务名称的字符串来进行 if/else 噩梦和依赖注入(inject)膨胀?

对于普通 Controller 如何做到这一点?

谢谢

最佳答案

服务可以通过其名称使用 $injector 动态注入(inject)到指令 Controller 中。能够通过 Controller 参数注入(inject)服务只是 Angular 提供的一种便利。在底层,Angular 使用 $injector 来检索对象实例。但我们也可以自己使用 $injector。

例如,它是指令的 Controller 函数

  controller :($scope, $injector) {
if(your_condition)
{ var ser= $injector.get(someService) // someService contains the name of a service
}

此处您的条件可以是任何条件,以便检查是否包含服务

关于javascript - 如何动态选择要在指令/ Controller 中使用的存储库/服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26640356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com