2012-10-09 36 views
5

Tôi có một vài hộp chọn đang hoạt động không ổn định trong ios. Tôi đang chạy cordova 1.8.1 và có một ứng dụng knockout.js đang chạy trên trang của tôi. Khi tôi chọn một mục trong bộ chọn mục, nó sẽ được chọn nhưng tất cả các mục khác trong danh sách sẽ được chọn. Bây giờ, theo như tôi có thể nói các mục thích hợp đang được lựa chọn và báo cáo khi tôi gửi biểu mẫu, nhưng nó trông thực sự thực sự xấu cho người dùng và có thể rất khó hiểu. Tôi đang làm bất cứ điều gì lạ mắt, đây là mã:Knockout.js chọn danh sách hoạt động không đúng trên ios

<select class="dropdownList1" style='width:35%;left:28%;position:absolute;' data-bind="value:ContactUsForm.Month,options:ContactUsForm.Months,optionsCaption: 'Month'"></select> 

Nhưng đây là kết quả khi tôi chọn 7 trong tháng:

enter image description here

này KHÔNG phải là một lựa chọn hộp muti. Dường như với tôi rằng lỗi ở đây là trong iOS, nhưng sự nghi ngờ của tôi là Knockout cũng đang thực hiện một số hiển thị lại khi tôi chọn một giá trị. Trong các trình duyệt bình thường, hộp sẽ đóng lại để bạn không bao giờ thấy trạng thái 'trung gian', nhưng với ios, hộp vẫn mở cho đến khi bạn nhấp vào 'xong'.

+0

Vấn đề này xảy ra trên trang web của chúng tôi cũng có. Bất kỳ giải pháp hoặc workaround cho đến nay? –

+0

Điều gì sẽ xảy ra nếu bạn loại bỏ ràng buộc 'giá trị'? –

+0

Nếu ràng buộc giá trị bị xóa, nó không có vấn đề hiển thị này !! –

Trả lời

5

Sự cố này xảy ra khi Knockout cập nhật các mục trong trình đơn thả xuống. Nhưng ngay cả khi ContactUsForm.Months không bao giờ thay đổi, Knockout vẫn cập nhật các mục bất cứ khi nào giá trị thay đổi, chẳng hạn như khi bạn chọn một mục. Xem bài viết của RP NiemeyerKnockout.js Performance Gotcha #3 - All Bindings Fire Together để biết thêm chi tiết về vấn đề này.

Tôi nghĩ rằng giải pháp mà anh ấy giới thiệu ở đó sẽ có hiệu quả với bạn. Thay vì sử dụng liên kết options, bạn nên sử dụng liên kết isolatedOptions của mình. (Ngoài ra value ràng buộc nên luôn luôn sau options hoặc isolatedOptions.)

<select data-bind=" 
    isolatedOptions:ContactUsForm.Months, optionsCaption:'Month', 
    value:ContactUsForm.Month"></select> 
+0

Cảm ơn bạn đã đề xuất michael. Tôi sẽ thử xem thử –

+0

và đã khắc phục sự cố –

+0

Loại bỏ phiên bản 2.3.0 hoặc 3.0.0 beta sẽ khắc phục sự cố này mà không cần phải thay đổi mã của bạn. –

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