Tôi biết đó là đã hỏi từ lâu rồi, nhưng nó đáng để trả lời vì tôi đã tìm thấy câu hỏi này trên Google trong khi tự tìm kiếm câu trả lời. Tôi đã tìm ra giải pháp để tôi quay lại đây để chia sẻ nó. Hai năm và "có thể nhìn thấy" vẫn không hoạt động **, vì vậy tôi đã kiểm tra "if" binding. Dữ liệu ràng buộc nó bên trong phần tử tùy chọn làm cho nó ẩn nhưng có thể lựa chọn. Knockout cũng có một cái gì đó gọi là: "cú pháp dòng chảy kiểm soát containerless".
này làm việc cho tôi:
<!-- ko if: category.parent == 0 -->
<option data-bind="value: category.name, text: category.name"></option>
<!-- /ko -->
Nó hoạt động vì nếu ẩn DOM. Từ trang web loại trực tiếp:
nếu đóng vai trò tương tự với ràng buộc hiển thị. Sự khác biệt là rằng, với dấu hiệu có thể nhìn thấy, luôn luôn nằm trong DOM và luôn có các thuộc tính ràng buộc dữ liệu được áp dụng - ràng buộc hiển thị chỉ sử dụng CSS để chuyển đổi chế độ hiển thị của phần tử vùng chứa. Tuy nhiên, nếu ràng buộc, , hãy thêm hoặc xóa đánh dấu chứa trong DOM của bạn, và chỉ áp dụng các ràng buộc cho con cháu nếu biểu thức là đúng.
Bạn có thể đọc thêm trong tài liệu: http://knockoutjs.com/documentation/if-binding.html
Kiểm tra tùy chọn khác nhau ở đây: http://jsfiddle.net/v8gyG/24/
** "nhìn thấy" hoạt động trong Chrome 27 và Firefox 21 nhưng không phải với multiselect trong Chrome.
<!-- ko if: -->
cũng hoạt động trong IE 10 và có nhiều lựa chọn trong Chrome.
Nguồn
2013-06-02 21:23:58