Có thể thay đổi kiểu dáng (sử dụng 'kiểu' hoặc 'css' ràng buộc) của phần tử tùy chọn của danh sách lựa chọn khi sử dụng 'tùy chọn' ràng buộc trên danh sách chọn không? Hoặc điều này chỉ có thể được thực hiện bằng cách sử dụng một 'foreach' trên danh sách lựa chọn và thay đổi kiểu dáng cho mỗi?Knockout.js thay đổi màu sắc <option> khi sử dụng liên kết 'tùy chọn'?
Tôi có điều này trong mã:
<select id="components-select" size="4" name="components-select"
data-bind=" options: combinedComponents,
optionsText: 'displayName',
optionsValue: 'id',
value: chosenComponent"></select>
nhưng nếu tôi thêm sau đó toàn bộ danh sách được màu đỏ nếu isDefault
lợi nhuận sai.
là cách duy nhất để đạt được điều này để mã hóa nó theo cách này:
<select id="components-select" size="4" name="components-select"
data-bind="foreach: combinedComponents">
<option data-bind="value: id, text: displayName, style: {color: isDefault() === true ? 'black' : 'red'}"></option>
</select>
Hoặc là có một số hình thức Knockout.js ma thuật mà tôi không biết?
Cảm ơn!
Không có bất kỳ tùy chọn thủ thuật nào ở đó mà tôi biết. Trình xử lý ràng buộc 'options' mặc định chỉ phát ra những gì là hoàn toàn cần thiết để có được các ngữ nghĩa bắt buộc. Và thiết lập màu sắc của mỗi tùy chọn không phải là một thiết lập có thể cấu hình được. Bạn có thể viết lại trình xử lý để thêm các tùy chọn đó. Có thể đặt các kiểu sau khi các điều khiển được hiển thị? –
Không có sự hỗ trợ trực tiếp nào cho điều này trong liên kết KO 'options'. Nhưng tôi nghĩ rằng ví dụ thứ hai của bạn với hướng dẫn 'foreach' là giải pháp đơn giản nhất cho vấn đề này. – nemesv
Nếu bạn sẽ làm bất cứ điều gì như thế này nhiều hơn chỉ một lần này, bạn nên tạo trình xử lý ràng buộc của riêng mình, sử dụng 'tùy chọn' làm hướng dẫn, ví dụ: 'optionsWithColor' –