【发布时间】:2016-07-25 23:07:13
【问题描述】:
在提供 OpaqueToken 方面需要一些帮助。使用 Angular 2 beta-12。如果提供者密钥是字符串,它可以正常工作,但在使用 OpaqueToken 时不起作用。在 Child 类中,SF 未定义。
父类:
export let SF = new OpaqueToken('sf');
export class A {
testMsg: string = 'hello';
}
@Component({
template: `<child></child>`,
providers: [
provide(SF, {useValue: A}),
provide('justString', {useValue: 'hi'})
]
})
export class App {}
儿童班:
import {Component, Injector, Inject, OpaqueToken} from 'angular2/core'
import {SF, A} from './app'
console.log("******", SF); // undefined
@Component({
selector: 'child',
template: `
$$CHILD Rendered$$ {{a}}
`
})
export class Child {
//constructor(@Inject(SF) private a: A) {} // doesn't work
constructor(@Inject('justString') private a: string) {}
}
我得到的例外:
angular2.min.js:17EXCEPTION: 无法解析 'Child' 的所有参数(@Inject(undefined))。确保所有参数都用 Inject 修饰或具有有效的类型注释,并且 'Child' 用 Injectable 修饰。
【问题讨论】:
标签: angular