Angular 角度传递参数到服务
我的服务>Angular 角度传递参数到服务,angular,service,Angular,Service,我的服务> export class MediaService { private matches = new ReplaySubject<boolean>(1); public match$ = this.matches.asObservable(); constructor(public readonly query: string) { if (window) { const mediaQueryList = window.matchMedi
export class MediaService {
private matches = new ReplaySubject<boolean>(1);
public match$ = this.matches.asObservable();
constructor(public readonly query: string) {
if (window) {
const mediaQueryList = window.matchMedia(this.query);
const listener = event => this.matches.next(event.matches);
listener(mediaQueryList);
mediaQueryList.addEventListener('change', listener);
}
}
}
错误:无法解析MediaService的所有参数
如果我调用服务但不传递任何参数,如果我在服务上设置值,它就会工作,例如
媒体服务文件
const mediaQueryList = window.matchMedia((min-width: 768px)');
我已尝试使用@Inject将参数传递到服务中:
constructor(@inject('query') private query: string) {}
食品成分
class FooBarComponent implements OnInit {
isDesktop: boolean;
private mediaService = new MediaService('(min-width: 768px)');
constructor(private mediaService:MediaService )
ngOnInit() {
this.mediaService.match$.subscribe(value => this.isDesktop = value);
}
}
provider: [
{provider: 'query', useValue: 'query',
]
但是不起作用!!!
参考资料:你到底想做什么?docs示例也可以很好地工作,docs示例没有在组件中注入服务。您正在将其注入构造函数。@GusSL我不再收到错误,但是使用新的MediaService(“(最小宽度:768px)”传递时,参数值不起作用,那么我如何使用服务呢?不起作用是什么意思?这会给你一个错误吗?手动更改参数时,例如在
FooBarComponent
中更改为”(最小宽度:100px)
,其工作正常。您想动态更改768px
值吗?我想project build可能有问题,我重新启动了我的机器,现在evrething正在工作,我在尝试升级时损失了2个多小时,谢谢您的帮助!