null
ลบมัน:
[attr.checked]="value ? '' : null"
หรือ
[attr.checked]="value ? 'checked' : null"
คำแนะนำ:
คุณสมบัติเทียบกับคุณสมบัติ
เมื่อองค์ประกอบ HTML ที่คุณเพิ่มการรวมนี้ไม่มีคุณสมบัติที่มีชื่อที่ใช้ในการผูก ( checked
ในกรณีนี้) และยังไม่มีการใช้องค์ประกอบเชิงมุมหรือคำสั่งกับองค์ประกอบเดียวกันที่มี@Input() checked;
แล้ว[xxx]="..."
ไม่สามารถใช้
ดูเพิ่มเติมความแตกต่างระหว่างคุณสมบัติและคุณลักษณะใน HTML คืออะไร
สิ่งที่ต้องผูกมัดเมื่อไม่มีทรัพย์สินดังกล่าว
ทางเลือกที่จะ[style.xxx]="..."
, [attr.xxx]="..."
, [class.xxx]="..."
ขึ้นอยู่กับสิ่งที่คุณพยายามที่จะประสบความสำเร็จ
เพราะ<input>
มีchecked
แอตทริบิวต์เท่านั้น แต่ไม่มีchecked
คุณสมบัติใด[attr.checked]="..."
ที่เหมาะสมสำหรับกรณีนี้
คุณสมบัติสามารถจัดการค่าสตริงได้เท่านั้น
ข้อผิดพลาดทั่วไปก็คือการ[attr.xxx]="..."
ผูกค่า ( ...
) นั้นจะถูกทำให้เป็นสตริงเสมอ คุณสมบัติและ@Input()
s เท่านั้นที่สามารถรับค่าชนิดอื่นเช่นบูลีน, ตัวเลข, วัตถุ, ...
คุณสมบัติและคุณลักษณะส่วนใหญ่ขององค์ประกอบเชื่อมต่อกันและมีชื่อเหมือนกัน
การเชื่อมต่อคุณสมบัติคุณสมบัติ
เมื่อผูกเข้ากับคุณสมบัติคุณสมบัติยังได้รับค่าที่ทำให้เป็นสตริงจากแอตทริบิวต์เท่านั้น
เมื่อถูกผูกเข้ากับคุณสมบัติคุณสมบัติจะได้รับค่าที่ถูกผูกไว้กับมัน (บูลีน, ตัวเลข, วัตถุ, ... ) และคุณสมบัติอีกครั้งเป็นค่าสตริง
สองกรณีที่แอตทริบิวต์และชื่อคุณสมบัติไม่ตรงกัน
Angular ถูกเปลี่ยนตั้งแต่นั้นและรู้เกี่ยวกับกรณีพิเศษเหล่านี้และจัดการกับมันเพื่อให้คุณสามารถผูก<label [for]="
แม้ว่าจะไม่มีคุณสมบัติดังกล่าว (เหมือนกันcolspan
)