/ / कोणीय 2 - कोणीय, टाइपस्क्रिप्ट में बाल तत्व प्राप्त करें

कोणीय 2 - कोणीय, टाइपस्क्रिप्ट में बाल तत्व प्राप्त करें

कृपया नीचे कोड देखें।

import { Component,ViewChild,QueryList,ViewChildren } from "@angular/core"

@Component ({
selector : "other-component",
template : `
<h2>OtherComponent<h2>
<table #tab id="tab">
<tr *ngFor="let val of valArray">
<td>{{val}}</td>
<input type="checkbox" [value]="val">
</tr>
</table>
<button (click)="getChecked()">click me</button>`
})
export class OtherComponent{
valArray = ["one","two","three","four"];
@ViewChild ("tab") elem;
getChecked = () => {

console.log (this.elem.nativeElement.children[0].children)
}

}

तालिका पंक्ति के अंत में चेकबॉक्स है जिसे पंक्ति मान (JSON ऑब्जेक्ट) असाइन किया गया है, अब मैं कोणीय 2 में सभी चेक किए गए बॉक्स एकत्र करना चाहता हूं।

सादे जावास्क्रिप्ट में मैं इसे आसानी से नीचे कर सकता हूं

var yy = document.getElementById("tab").getElementsByTagName("input");

मुझे वह मिला जो मैं खोज रहा था this.elem.nativeElement.children[0].children

इसने मुझे सरणी दी टीआर जिन तत्वों से मैंने इनपुट बॉक्स चेक किए हैं

क्या कोणीय 2 में ऐसा करने का कोई बेहतर तरीका है?

उत्तर:

जवाब के लिए 8 № 1

एचटीएमएल बदलें (जोड़ें #cbx सेवा मेरे input) पसंद:

<tr *ngFor="let val of valArray"><input #cbx type="checkbox" [value]="val"></tr>

फिर आपके घटक वर्ग में:

@ViewChildren("cbx") checkboxes;
getChecked = () => {
console.log(this.checkboxes.toArray().map(x => x.nativeElement));
}

यह वांछित चेकबॉक्स की सरणी मुद्रित करेगा

लाइव भी देखें प्लंकर उदाहरण

अद्यतन करें

वैकल्पिक तरीका डोम एपीआई का उपयोग सीधे कर रहा है:

@ViewChild ("tab") elem;
getChecked = () => {
console.log(this.elem.nativeElement.getElementsByTagName("input"));
console.log(this.elem.nativeElement.querySelectorAll("input"));
}