Ich versuche Werte auf ein Element Attribut zu binden, die nicht-nativ ist und natürlich die übliche Vorgehensweise funktioniert nicht:Wie binde ich in Angular 2 an eine nicht-native Eigenschaft?
import {Directive, ElementRef, Input, OnInit, HostBinding} from 'angular2/core';
@Directive({
selector: '[myFeet]'
})
export class MyFeetDirective {
@HostBinding('feet')
@Input() feetProps:string
constructor(private el: ElementRef) { }
}
Ich Referenzierung diese Anweisung wie folgt aus:
<div [myFeet]="body.footCount"></div>
Und ich möchte dies das Endergebnis in dem DOM (dh post-Angular-Rendering) sein:
<div feet="2"></div>
ich dies eine ngOnInit f, indem einfach zu erreichen ist es gelungen, die
ngOnInit(){
this._setAttributes();
}
private _setAttributes(){
if (this._feetProps != null) {
this._el.nativeElement.setAttribute("feet", this._feetProps);
}
}
Aber das ist nicht der Winkel Weg und ich fragte mich, was ist?
p.s. Ich denke, dass die Leistungsvorteile von Angular 2 in gewisser Weise mit der Einhaltung des nativen DOM zusammenhängen, aber gibt es eine Möglichkeit, dies für benutzerdefinierte Elemente/Attribute zu überschreiben? Vielleicht ist das falsch, so oder so, ich würde Ihre Einsicht schätzen.
Eigentlich bin ich nicht sicher, ob Meine Antwort ist, wonach Sie suchen. Es fällt mir schwer, aus Ihrer Frage herauszufinden, was Ihr Problem ist und wie das Ergebnis der Lösung aussehen sollte. Was meinst du mit "offensichtlich funktioniert der übliche Ansatz nicht:"? Wenn du '
' im DOM willst, dann schreibe einfach '' –Danke, Gunter, Es scheint sicherlich die richtige Idee zu sein, aber ich kämpfe immer noch darum, es zum Laufen zu bringen. Wenn ich die 'Attr.' Präfix, dann erscheint die Ausgabe nicht. Ich fummle immer noch damit herum, aber NG2 ist sehr neu für mich. Ich werde dies mit allem, was ich finde, aktualisieren. – Astravagrant