angular - ใช้ input ในคลาสบน angular2 กับ typescript
ฉันกำลังพยายามใช้ input ที่ฉันส่งโดย appcomponent ไปยังคอมโพเนนต์ select ของฉัน
ฉันต้องใช้ค่าตัวนี้ในคลาสของฉัน ปัญหาคือมันยังไม่ได้ถูกระบุในคลาสของฉัน แต่เมื่อฉันใส่มันในเทมเพลต ฉันสามารถเห็นมันได้
ตัวอย่างเช่นในส่วนประกอบนี้:
import {Component, Input} from 'angular2/core';
@Component({
selector: 'test',
template: "<h4>test 1 {{test_input}}</h4> <br>"
})
export class TestComponent {
private test_test;
@Input() test_input: string;
}
ฉันจำเป็นต้องใช้ test_input เป็นตัวอย่างเพื่อแก้ไขมัน
คำตอบ #1
ค่าข้อมูลนำเข้าจะยังไม่ได้ถูกตั้งค่าก่อนที่ ngOnInit() จะถูกเรียก ย้ายโค้ดของคุณไปที่เมธอดนี้
export class TestComponent {
private test_test;
@Input() test_input: string;
ngOnInit() {
console.log(this.test_input);
}
}
และมันจะทำในสิ่งที่คุณคาดหวัง
คำตอบ #2
ฉันต้องการใช้ test_input เป็นตัวอย่างเพื่อปรับแก้มัน
ถ้าคุณต้องการแก้ไขค่าทุกครั้งที่มีการเปลี่ยนค่าและส่งต่อไปยัง TestComponent ใช้ตัวตั้งค่า:
@Input() set test_input(newValue: string) { ... }
สิ่งนี้ถูกอภิปรายในคู่มือการโต้ตอบส่วนประกอบ ตัวอย่างการดักจับการเปลี่ยนแปลงคุณสมบัติอินพุตด้วยเซ็ตเตอร์
