มีทางเลือกอื่นสำหรับ ng-disabled ใน angular2 หรือไม่?


145

ฉันใช้ angular2 เพื่อการพัฒนาและสงสัยว่ามีทางเลือกอื่นสำหรับng-disabledangular2 หรือไม่

สำหรับอดีต โค้ดด้านล่างอยู่ใน angularJS:

<button ng-disabled="!nextLibAvailable" ng-click="showNext('library')" class=" btn btn-info btn-xs" title="Next Lib >> {{libraries.name}}">
    <i class="fa fa-chevron-right fa-fw"></i>
</button>

แค่อยากรู้ว่าฉันจะใช้ฟังก์ชันนี้ได้อย่างไร อินพุตใด ๆ


15
"! nextLibAvailable" [คนพิการ] = ลองยุทธนี้ความช่วยเหลือ
Mayur

คำตอบ:


278

เพื่อตั้งค่าdisabledคุณสมบัติเป็นtrueหรือfalseใช้

<button [disabled]="!nextLibAvailable" (click)="showNext('library')" class=" btn btn-info btn-xs" title="Next Lib"> {{libraries.name}}">
    <i class="fa fa-chevron-right fa-fw"></i>
</button>

5
ใช้งานได้เท่านั้น<button>,(เป็นจริงหรือไม่) ซึ่งสมเหตุสมผล อื่นได้รับข้อความข้อผิดพลาด (เช่นเมื่อพยายามที่จะผูกกับ<a>) `ไม่สามารถผูกกับ 'ปิดการใช้งาน' เพราะมันไม่ได้เป็นทรัพย์สินที่รู้จักกันของ 'a' '
ถั่วแดง

4
มันทำงานได้กับทุกองค์ประกอบที่มีdisabledคุณสมบัติ ดูstackoverflow.com/questions/35431188/angular
GünterZöchbauer

69
[attr.disabled]="valid == true ? true : null"

คุณต้องใช้nullเพื่อลบ attr จากองค์ประกอบ html


3
สำหรับเชิงมุม> 2.x นี่เป็นวิธีที่ถูกต้องในการใช้ [attr.disabled]
dale

12
attr.จำเป็นเฉพาะเมื่อองค์ประกอบไม่มีdisabledคุณสมบัติ สำหรับองค์ประกอบเช่นปุ่มและองค์ประกอบการป้อนข้อมูลattr.นั้นซ้ำซ้อน สำหรับองค์ประกอบที่ไม่มีdisabledคุณสมบัติการเชื่อมโยงจะattr.disabledมีความหมายเฉพาะถ้าคุณระบุที่อยู่โดย CSS เพื่อให้ดูเหมือนว่าปิดใช้งาน (ตัวชี้เมาส์สีเทา ... )
GünterZöchbauer

ใช่นี่เป็นวิธีที่ดีที่สุดเมื่อองค์ประกอบบางอย่างไม่มีการปิดใช้งานคุณสมบัติเริ่มต้น
Viraj

คุณสามารถดูวิธีการแก้ปัญหาที่นี่ - มันทำงานร่วมกับคุณลักษณะนี้ในส่วนของ [attr.aria-disabled]="myPropReflectingIfDisabled"HTML มันจะเพิ่มแอตทริบิวต์aria-disabled="true"ถ้าเป็นmyPropReflectingIfDisabled true
Netsi1964

6

นี่คือทางออกกำลังใช้กับ anular 6

[readonly]="DateRelatedObject.bool_DatesEdit ? true : false"

บวกคำตอบที่ได้รับข้างต้น

[attr.disabled]="valid == true ? true : null"

ไม่ได้ผลสำหรับฉันและระวังการใช้ null เพราะมันคาดว่าบูล


[readonly] = "DateRelatedObject.bool_DatesEdit? true: false" ทำงานร่วมกับ Angular 6+
somedev


0

ใช่คุณสามารถตั้งค่า [ปิดการใช้งาน] = "จริง" หรือถ้ามันเป็นปุ่มตัวเลือกหรือช่องทำเครื่องหมายจากนั้นคุณสามารถใช้ปิดการใช้งาน

สำหรับปุ่มตัวเลือก:

<md-radio-button disabled>Select color</md-radio-button>

สำหรับแบบเลื่อนลง:

<ng-select (selected)="someFunction($event)" [disabled]="true"></ng-select>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.