Komponentenkind als Zeichenfolge abrufen

Für eine I18n-ähnliche Komponente möchte ich einen Komponenteninhalt als Zeichenfolge mit einem Fallback-Wert erhalten, falls mein I18n-Dienst nichts erhält. Dieser Wert soll ein Fallback-Wert sein.

I18n serviceget Methode

public get(key:string,
               defaultValue?:string,
               variables:Variables = {},
               domain?:string):string {

        for (let catalogue of this.catalogues) {
            if (catalogue.getDomains().indexOf(domain) >= 0
                && catalogue.getLocale() == this.locale
                && catalogue.hasKey(key)) {
                return I18n.setVariables(catalogue.get(key, domain, defaultValue).value, variables);
            }
        }
        return defaultValue;
    }

I18nComponent:

@Component({
    selector: "i18n",
    template: "{{text}}",
})
export class I18nComponent implements OnInit {

    constructor(private i18n:I18n) {
    }

    @ContentChild() content:string; //Here, I want to store actual value as fallback one.

    @Input('key') key:string;

    @Input('domain') domain:string;

    @Input('variables')
    variables:Variables = [];

    @Input("plural")
    plural:number;

    text:string;

    ngOnInit():any {
        console.log(this.content); //Here I get 'undefined'
        if (this.plural !== undefined && this.plural != null) {
            this.text = this.i18n.get(this.key, this.content, this.variables, this.domain);
        } else {
            this.text = this.i18n.getPlural(this.key, this.plural, this.content, this.variables, this.domain);
        }
    }
}

eispiel @usage:

<i18n key="FOO_KEY" domain="stackoverflow">I'm the default value !</i18n>

Ich kenne<ng-content></ng-content> funktioniert aber nur auf der Vorlagenlogik, ich brauche eine Möglichkeit, Kind als Zeichenfolge in Typoskript zu bekommen.

Schon versucht@ContentChild(String) aber ich habeundefined.

Ein anderer Weg wäre, es wie "Loading ..." String zu tun, den Sie in der Basis haben könnenapp -Komponente im Index, die sich wie ein Platzhalter verhält, bis Sie alles geladen haben. Ich könnte dasselbe für I18n tun, den Spitzenhalter hier lassen, bis ich etwas vom Service erhalte, um es zu ersetzen, aber ich weiß nicht, wie ich das erreichen soll.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage