2016-04-06 4 views
1

Wie erhalten Sie eine Referenz der Komponente "Cart" selbst anstelle von querySelector() in der Klasse Warenkorb?So erhalten Sie Referenz der Komponente selbst und definierte Variable in Angular 2

Auch ich möchte wissen, gibt es sowieso den Zugriff auf die Variable #i aus der Klasse Warenkorb?

@Component(
    selector: '[cart]', 
    templateUrl: 'cart.html') 
class Cart { 

    handling(){ 
     querySelector("div[cart]"); 
    } 
} 

<div cart> 
    <ul> 
     <li *ngFor="#i of items.values">{{i}}</li> 
    </ul> 
</div> 
+1

Können Sie erklären, was Sie zu tun versuchen. Sie können ElementRef in Ihren Einkaufswagen-Konstruktor 'constructor (private _element: ElementRef)' einfügen, um den Angular2-Element-Wrapper zu erhalten. nativeElement-Eigenschaft muss zugrunde liegenden dom – Chandermani

+0

Warum möchten Sie auf # # zugreifen, es ist ein Wert von 'Artikel', die sowieso in' Cart' verfügbar ist. –

+0

Hallo Chandermani. Danke für deinen hilfreichen Hinweis, es löst mein erstes Problem. –

Antwort

3
@Component(
    selector: '[cart]', 
    templateUrl: 'cart.html') 
class Cart implements AfterViewInit { 
    // as mentioned by @Chandermani 
    ElementRef _element; 
    Cart(this._element); 

    @ViewChildren('myLi') ElementRef myLis; 
    // or for a single element or just the first one 
    // @ViewChild('myLi') ElementRef myLi; 

    ngAfterViewInit() { 
     // not initialized before `ngAfterViewInit()` 
     print(myLis); 
    } 

    handling(){ 
     querySelector("div[cart]"); 
    } 
} 

<div cart> 
    <ul> 
     <li #myLi *ngFor="let i of items.values">{{i}}</li> 
    </ul> 
</div> 
+1

Danke Günter! Es ist sehr hilfreich. –

+0

Was genau "Cart (this._element);" hier machen? – Cuel

+0

@ Cuel es ist wie 'Konstruktor (private _element: ElementRef)' in TS –

Verwandte Themen