Ich versuche auf ein DOM-Element außerhalb der aktuellen Direktive Element .. für eine Größe anpassen-ähnliches Verhalten, mit einem externen Element als ein Handle und die Zielmarkierung nicht so viel zu ändern, besonders nicht mit der Transclusion wie <ng-content>
.
Was ich jetzt tun, ist etwas denke ich, ein bisschen unorthodox, wie mit der BrowserDomAdapter
: angular2: manipulieren Element außerhalb der Direktive
import {Directive, Input, HostListener} from 'angular2/core';
import {BrowserDomAdapter} from 'angular2/platform/browser';
@Directive
({
selector: '[resizable-handle]',
providers: [BrowserDomAdapter]
})
export class ResizableHandle
{
// get selector from actual directive selector attribute
@Input('resizable-handle') resizableSelector: string;
constructor(private _domAdapter: BrowserDomAdapter){}
@HostListener('mousedown', ['$event'])
startResize(e: MouseEvent)
{
this._domAdapter.query(this.resizableSelector); //... manipulate this native element
}
//... and so on...
}
Und die Vorlage sieht wie folgt aus:
<a [resizable-handle]="'.target-container'"> ... </a>
<!-- ...somewhere further, on a different level, the target I don't want to touch in order to get this working... -->
<div class="target-container"> ... </div>
Was ist das Problem mit '' in Ihrem Fall? –