OpaqueTokenの提供に関するヘルプが必要です。 Angular 2 beta-12を使用する。プロバイダキーが文字列の場合は正常に動作しますが、OpaqueTokenを使用する場合は機能しません。子クラスでは、SFは未定義です。角度2 OpaqueToken
親クラス:
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 {}
子供クラス:
angular2.min.js::私が得る
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) {} }
例外17EXCEPTION:すべてのパラメータを解決できません。 'Child'(@Inject(undefined))の場合すべてのパラメータがInjectで装飾されているか、有効なタイプの注釈を持っていること、および「Child」が注入可能で装飾されていることを確認してください。 (あなたがこの中には行っていない私はあなたの親と子のクラスは別のファイルであると仮定し、そしてあなたが
Parent
デコレータのdirectives
にそれを置くことができるようにあなたが親ファイルにChild
をインポートしていることを
これははるかに良い作品!ありがとうございました。 http://plnkr.co/edit/7mVEoE – Elijah