我需要将服务器生成的字符串传递给客户端,使用类似php嵌入到html中的内容,如:
<html>
//head...
//body...
<script>
System.import("app")
.then(function(module) {
module.main({authToken: '<?php echo $randomString; ?>'});
})
.catch(console.error.bind(console));
</script>
// end of body...
</html>
我在main.ts中得到了类似的东西:
export function main(randomString: string) {
platformBrowserDynamic([{provide: 'randomString', useValue: randomString}])
.bootstrapModule(AppModule);
}
,在AppComponent中,如:
constructor(randomString) {
console.log(this.randomString);
}
之后我得到了
zone.js:355 Unhandled Promise rejection: Can't resolve all parameters for AppComponent: (?). ; Zone: <root> ; Task: Promise.then ; Value: Error: Can't resolve all parameters for AppComponent: (?).(…) Error: Can't resolve all parameters for AppComponent: (?).
我如何正确地将变量作为提供者传递给bootstrap并在例如AppComponent或其他组件或服务中使用?
由于
答案 0 :(得分:2)
要注入使用字符串键提供的值,您需要使用@Inject()
装饰器
constructor(@Inject('randomString') private randomString:string) {