小编Joh*_*ohn的帖子

基于@Input()的Angular 2动态依赖注入

假设我有一个Angular 2组件指令,我希望组件使用的注入依赖项由@Input()确定.

我想写类似的东西<trendy-directive use="'serviceA'">并让TrendyDirective的实例使用serviceA,或者让它使用serviceB,如果这是我指定的.(这是我实际尝试做的过于简单的版本)

(如果你认为这是一个可怕的想法,我会对这些反馈持开放态度,但请解释原因.)

这是如何实现我的想法的一个例子.在这个例子中,假设ServiceA和ServiceB是注入式的,它们都通过'superCoolFunction'来实现iService.

@Component({
    selector: 'trendy-directive',
    ...
})
export class TrendyDirective implements OnInit {
    constructor(
        private serviceA: ServiceA,
        private serviceB: ServiceB){}

    private service: iService;
    @Input() use: string;

    ngOnInit() {
        switch (this.use){
            case: 'serviceA': this.service = this.serviceA; break;
            case: 'serviceB': this.service = this.serviceB; break;
            default: throw "There's no such thing as a " + this.use + '!';
        }
        this.service.superCoolFunction();
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为这在技术上可行,但必须有更好的方法来进行动态依赖注入.

dependency-injection typescript angular

18
推荐指数
2
解决办法
1万
查看次数

如何在aspnet核心应用程序中为静态文件使用多个目录?

默认情况下,wwwroot目录可以托管静态文件.但是,在某些情况下,为静态文件创建两个目录可能是理想的.(例如,让webpack将构建转储到一个gitignored目录中,并在非gitignored目录中保留一些图像文件,favicon等).从技术上讲,这可以通过在wwwroot中包含两个文件夹来实现,但从组织上来说,最好在根级别拥有这些文件夹.有没有办法配置一个aspnet核心应用程序使用两个单独的目录静态文件?

asp.net-core

11
推荐指数
1
解决办法
3199
查看次数

如何在VSTS中删除sprint(Visual Studio Team Services)

在VSTS的"工作"下,我创建了一些测试冲刺.现在我想删除它们.你如何删除冲刺?

agile sprint azure-devops

8
推荐指数
1
解决办法
6330
查看次数

AspNetCore.Mvc与AspNetCore.Mvc.Core

AspNetCore.Mvc和AspNetCore.Mvc.Core NuGet包之间有什么区别?Mvc是一个包罗万象的包裹,Mvc.Core只是骨头吗?这就是我在这里这里看到的描述,但这并不完全清楚.

asp.net asp.net-core asp.net-core-1.0

4
推荐指数
1
解决办法
568
查看次数

如何检查我的AzureAD版本是V1还是V2?

我想在哪里查看AzureAD版本?是否有一些命令行实用程序可以返回版本,或者某些休息端点提供类似的基本信息?

azure-active-directory adal azure-ad-graph-api

4
推荐指数
1
解决办法
2095
查看次数