angular - 如何在Angular4中解决运行时的依赖关系
问题描述
我开始学习angular4中的依赖注入。假设我有两个这样的服务
服务一个
export class BigService {
constructor() { }
print(){
alert('big service');
}
}
服务b
export class SmallService {
constructor() { }
print(){
alert('small service');
}
}
现在,我想在运行时解决依赖关系,假设我想在浏览器窗口大小 < 1000px 时调用小服务,当浏览器窗口大小> 1000px 时调用大服务
这是我的组件,我试图解决对单击按钮的依赖
@Component({
selector: 'app-parent-b',
templateUrl: './parent-b.component.html',
styles:[`
<input type="button" value="submit" (click)='userButtonClick()'>
`]
})
export class ParentBComponent implements OnInit {
ngOnInit() {
}
userButtonClick(){
this.useInjector();
}
useInjector(){
const truthy=true;
let injector=ReflectiveInjector.resolveAndCreate([
{
provide:'service',
useFactory:()=>{
if(truthy){
return new SmallService();
}else{
return new BigService();
}
}
}
])
let _s=injector.get('service')
_s.print();
}
}
但我无法解决它,我收到这样的错误
解决方案
推荐阅读
- java - 忽略空格并只计算字母
- acumatica - 使用 Acumatica 框架创建销售订单
- c# - FluentAssertions:在异步方法上使用 Should().NotThrow()
- google-cloud-functions - 如何在 Cloud Functions 中进行版本控制
- linux - shell脚本将数组的值分配给变量
- angularjs - AngularJS 意外错误
- django - Django 选择要升级的版本
- c# - 通过套接字连接到 WCF 主机
- javascript - 如何使用 HtmlUnit 从网站修复所有加载 url?
- javascript - 从es6中的文件获取json数据