Richtlinien in Angular2 haben keine "Scopes", während Komponenten tun. Aber in meinem Fall brauche ich die Richtlinie, um einen Anwendungsbereich zu schaffen. Sehen Sie sich meine App-Komponente an - sie hat eine HTML-Vorlage, und ANYWHERE für jedes Element könnte die foo
-Direktive erscheinen. Dies sollte ein Datum aus dem Dienst holen und es dem Element zuweisen.Angular2 Direktive mit Scope
In Angular1 war es sehr einfach ... Richtlinien könnten ihren eigenen Umfang haben. Aber in Angular 2 finde ich keinen (auch nur schmutzigen) Weg, um das zu erreichen.
Es sieht wie eine einfache Aufgabe aus, nicht wahr?
@Directive({
selector: '[foo]'
})
class FooDirective {
@Input()
public id:string;
public bar;
constructor() {
this.bar = 'This is the "bar" I actually need. It is taken from DB let's say..' + this.id;
}
}
@Component({
selector: 'app',
template: `
<div foo id="2">
This is random content 1: {{bar}}
</div>
<div foo id="2">
This is random content 2: {{bar}}
</div>
`,
directives: [FooDirective]
})
class App {
bar:string = 'This should be ignored, I need "bar" to be set from directive!';
}
bootstrap(App);
Ja, das weiß ich. Aber lassen Sie uns sagen, dass ich eine "Helfer" -Richtlinie für unsere Designer erstelle, und ich sagte ihnen, "fügen Sie foo auf jedes Element hinzu, und es wird einige Daten aus der Datenbank holen" .. Und ich muss nicht "extra Arbeit" hinzufügen sie .. (Ich habe bereits dieses Tool mit eckigen 1, so dass sie nicht mein neues Werkzeug mit "mehr Arbeit für sie" mögen –
Vergessen Sie nicht, exportAs hinzuzufügen: 'foo' innerhalb der Metadaten-Richtlinie. – yurzui
Auch ich denke, dass es limit in einer Vorlage für diese "lokalen Variablen". Aber unsere Vorlagen sind ziemlich groß –