2013-07-31 17 views
22

Tôi muốn đặt một lớp css bootstrap thành một khoảng với điều kiện (tối đa giá trị được liên kết). Tôi có trường isApproved trong danh sách, tôi muốn xem trường có lớp 'nhãn thành công' khi lớp đang hoạt động và 'nhãn quan trọng' khi lớp hoạt động và nhãn 'quan trọng' không hoạt độngsử dụng loại trực tiếp để đặt lớp css với điều kiện if

Tôi đã thêm dòng này, nhưng tất cả thời gian lớp đầu tiên:

data-bind="text: isApproved, css: isApproved = 'true' ? 'label label-important' : 'label label-important'" 

Có thể trong html hoặc tôi nên thêm trường được tính trên máy ảo của mình không?

+0

Bạn có thể thêm mã bạn đang làm việc không? JS & HTML? Tốt nhất là trong một jsfiddle hoặc một cái gì đó. –

Trả lời

35

Nếu tôi hiểu bạn đúng, đây là ràng buộc bạn đang tìm kiếm.

data-bind="text: isApproved, css: { 
    'label' : true, 
    'label-success' : isApproved(), 
    'label-important': !isApproved() 
}" 

Tôi hy vọng điều đó sẽ hữu ích.

+0

Cảm ơn, tôi đã không chú ý đến() với thuộc tính isApproved – Wasim

27

Bạn cũng có thể sử dụng toán tử ternary. Ví dụ:

<span class="label" data-bind="text: isApproved, css: isApproved() == true ? 'label-success' : 'label-important'"></span> 
+1

Cảm ơn, tôi đã không chú ý đến() với thuộc tính isApproved – Wasim

+0

Đây là giải pháp thanh lịch hơn. Chúc mừng. –

+0

Quan trọng để sử dụng giải pháp này: trong trường hợp của tôi, hàm 'isApproved()' rất tốn kém và không được đánh giá quá mức cần thiết – bkwdesign

Các vấn đề liên quan