Ich verwende Polymer 1.5 und ich brauche wirklich die "this" -Variable, die nicht außerhalb abgebildet werden soll. Ich weiß, Typoskript tut dies für einige valid reasons.Verhindern, dass "dies" umgeschrieben wird Typskript-Kompilierung
declare var Polymer: any;
var MyBehavior = MyBehavior || {};
MyBehavior.FormSubmit = {
_setInvalid: (query, status) => {
var elems = Array.prototype.slice.call(Polymer.dom(this.root).querySelectorAll(query));
elems.forEach(element => {
if (status) {
element.setAttribute('invalid', status);
}
else {
element.removeAttribute('invalid');
}
});
}
};
erhalten dann abgebildet auf:
$this = this;
var MyBehavior = MyBehavior || {};
MyBehavior.FormSubmit = {
_setInvalid: (query, status) => {
var elems = Array.prototype.slice.call(Polymer.dom($this.root).querySelectorAll(query));
elems.forEach(element => {
if (status) {
element.setAttribute('invalid', status);
}
else {
element.removeAttribute('invalid');
}
});
}
};
über die Variable die das sehen? Dies wird den Code brechen. Wenn ich auf die "This.root" oder Ähnliches zugreifen könnte, wird das Wunder bewirken. Gibt es eine Möglichkeit zu verhindern, dass TypeScript das "Dies" verschiebt?
S.S: Ich wusste nur über PolymerTS! Leider kann ich es nicht dazu bringen, Verhalten vom Polymer-Objekt aufzurufen.
Sogar in Javascript, das Pfeilfunktionen (=>) unterstützt, funktioniert 'this', als wäre es erfasst worden. Wenn Sie Old-School-'this' Verhalten wollen, müssen Sie Old-School-Funktionen verwenden. – recursive