2017-02-22 2 views
0

Ich entwickle eine benutzerdefinierte Komponente und möchte einige erforderliche Bedingungen für einige Eingabeattribute festlegen. Gibt es einen Weg dazu?So fordern Sie ein Attribut in einer benutzerdefinierten Komponente in eckig an

Zum Beispiel, sagen, dass die Komponente „myComp“ ist und die beiden Attribute sind „erforderlich“ und „optional“ Ich würde das gerne:

<my-comp required="value" optional="value"></my-comp> 

dieser Lauf erfolgreich

<my-comp required="value"></my-comp> 

diese run glatt auch, aber das:

<my-comp optional="value"></my-comp> 

sendet eine Art von Fehler in der Konsole zu sagen, dass die attr ibute "erforderlich" ist natürlich "erforderlich".

Im Moment habe ich eine Typoskript Version von AngularJS (Version 1.5.x) verwende und die Attribute innerhalb eines Bindungen erklärt Objekt wie folgt aus:

export class MyCompComponent implements ng.IComponentOptions { 
    public template: string = '<p>TEMPLATE</p>'; 
    public controller: Function = MyCompController; 
    public bindings: any = { 
     required: '@', 
     optional: '@' 
    } 
} 

Antwort

0

prüfen für das Attribut in der Steuerung:

app.controller("MyCompController", function($element,$attrs) { 
    if (!$attrs.required) { 
     console.error("BAD my-comp ",$element[0], 
      "my-comp component missing 'required' attribute"); 
    } 
    }) 

die DEMO on PLNKR

+0

was ist die Schnittstelle für $ Element und attrs $? Zum Beispiel für $ log verwende ich ng.ILogService – Gianmarco

Verwandte Themen