วิธีการที่ใช้ข้อมูลของดึงข้อมูลจาก observable ด้วยตัวมันเองส่วนประกอบกลับมาทำดัชนีเทียบสีที่ถูกใช้เป็นข้อมูลเข้า()

0

คำถาม

ฉันสร้างต้นแบบ example.component.html นั่นอย่างเราได้รับคำขู่แบบนี้เป็นวิธีการเป็นตัวแปรต้องการกระทำเมื่อคลิกเมาส์:

<div>
  <button (click)="method()">click here</button>
</div>

example.component.ts แฟ้มจากวิธีการออกมาจากการนำเข้าข้อมูล()ดังนั้นฉันสามารถใช้เอกสารต้นแบบนี้ในหลายสถานการณ์:

@Component({
  selector: 'example',
  templateUrl: './example.component.html',
})
    export class ExampleComponent implements OnInit {
      @Input() method;
    
      constructor() {}
    
      ngOnInit(): void {}
    }

ที่นี่คือที่ที่มันจะซับซ้อนกว่านี้ ตอนที่พ่อแม่ส่วนประกอบวิธีการนั้นจะถูกกระตุ้นเมื่อมีการคลิกใช้ตัวแปรมานจากการ observable:

parent-example.component.html

  <example [method]="onClick"></example>

parent-example.component.ts

@Component({
  selector: 'parent-example',
  templateUrl: './parent-example.component.html',
})
export class ParentExampleComponent implements OnInit {
  @Input() method;
  business;

  constructor(businessEntityService: BusinessEntityService) {
    businessEntityService.entities$.subscribe(
      data => (this.business = data),
    );
  }

  onClick() {
    console.log(this.business);
  }

  ngOnInit(): void {}
}

ถึงแม้ว่าพ่อแม่ส่วนประกอบก็คือ subscribing businessEntityService observable และฉันตรวจสอบว่ามันอยู่ในวามจริงข้อมูลตอนที่ฉันคลิกที่ปุ่มที่คอนโซลปูมบันทึก undefined.

ฉันเข้าใจเรื่องนี้อาจจะต้องมีส่วนเกี่ยวข้องกับขอบเขตและที่ตั้งกำลังมองหา this.business ตอนเด็กส่วนประกอบอย่างไรก็ตามฉันอยากจะรู้ถ้ามันเป็นยังไงต้องโทรหาวิธีการนั้นใช้ตัวแปรจากการสมัครสมาชิกจากของส่วนประกอบมือนำเข้าข้อมูล().

angular rxjs typescript
2021-11-24 03:00:01
1

คำตอบที่ดีที่สุด

2

คน this คอนเท็กซ์เป็นการสูญเสีย(อฉันคิดว่า). สามารถเกิดขึ้นเมื่อผ่านไปเรียนวิธีการของที่ params

แทนที่ ParentExampleComponent#onClick วิธีการด้วย:

onClick = () => {
    console.log(this.business);
}

ข้อควรจำ:ส่วน หลังสำหรับเรื่องนั้น Typescript จะรักษาตอนนี้ onClick เป็นห้องทรัพย์สินและเลื่อนรหัสเข้าไปใน constructor. การใช้ลูกธนูฟังก์ชันล็อคนที่ this คอนเท็กซ์ของมันฟังก์ชัน

2021-11-24 07:10:18

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่