2016-08-09 516 views
1

ich eine Komponente (Richtlinie) erstellt in Typoskript für Ionic 2, die Komponente als Selektor <search-result> und wie wir mit semantischen HTML arbeiten, und wir auch Stil folgenden HTML-Semantik, I möchte dieses HTML-Element registrieren.Registrieren ein benutzerdefiniertes HTML-Elements in Typoskript - Ionic 2

Ich verwende TypeScript und habe bereits versucht document.registerElement, aber es besagt, dass das Dokument nicht existiert auf Typ "Dokument".

, dass mein Code:

import {Component, Input} from "@angular/core"; 
import {NavController, NavParams} from "ionic-angular"; 
import {IONIC_DIRECTIVES} from "ionic-angular"; 

@Component({ 
    selector: "search-result", 
    directives: [IONIC_DIRECTIVES], 
    templateUrl: "build/pages/components/search-result/search.result.html" 
}) 
export class SearchResultComponent { 
    constructor() { 
     document.registerElement("search-result"); 
    } 
} 

Hier ist die Fehlermeldung im Code:

enter image description here

Wie melde ich ein Element? Fehle ich eine import?

+1

Warum genau müssen Sie dieses Tag registrieren? – rinukkusu

+1

das war der Punkt, an dem ich versuchte, mit CSS auf das DOM-Element zuzugreifen, aber ich versuchte dieses '[search-result] {}' und sollte nur 'search-result {}' sein – DAG

Antwort

0

Dies ist eine seltsame Fehlermeldung. Sie sollten den gesamten Ausnahmetext angeben.

Sie versuchen, eine Funktion zu verwenden, die noch entwerfen und noch nicht offiziell Teil des DOM:

Try document.registerElement("search-result"); zu window.document.registerElement("search-result");

EDIT zu ändern. Daher werden sie wahrscheinlich erst in TypeScript enthalten sein, wenn sie abgeschlossen sind.

Sie können die Compiler-Fehlermeldung verhindern, indem (<any>document).registerElement("search-result");

+0

Ich habe den Post mit der Nachricht aktualisiert – DAG

0

Schreiben fand ich heraus, dass dies nicht erforderlich ist. Sobald eine Direktive/Komponente registriert ist, wird das Tag automatisch registriert.