Ràng buộc 1 chiều cho tên + hộp kiểm hoạt động tốt, nhưng nó không hoạt động ban đầu cho nút radio employeeTypeA mặc dù giá trị của nó là đúng trong viewmodel html hiển thị nút radio không được thiết lập, tại sao vậy?loại bỏ không đặt giá trị thực sự ban đầu trên nút radio
<script type="text/javascript">
$(function()
{
var PersonViewModel = function()
{
this.firstName = ko.observable('Lisa');
this.lastName = ko.observable('T');
this.isCustomer = ko.observable(true);
this.employeeTypeA = ko.observable(true);
this.employeeTypeB = ko.observable(false);
};
var personViewModel = new PersonViewModel();
ko.applyBindings(personViewModel, $('data').get(0));
});
</script>
<div id="data">
<span data-bind="text: firstName"></span>
<span data-bind="text: lastName"></span>
<input type="checkbox" data-bind="checked: isCustomer" title="Is a customer" />
<input name="x" type="radio" data-bind="checked: employeeTypeA" title="Employee type A" />
<input name="x" type="radio" data-bind="checked: employeeTypeB" title="Employee type B" />
</div>
Tôi đã kiểm tra các trang web knockoutJS và nhìn vào hướng dẫn: wantsSpam: ko.observable (true), nhưng tôi không thấy rằng wantsSpam được ràng buộc với một bất động sản tầm nhìn ... không phải là nút radio trực tiếp . Như bạn cũng biết về ASP.NET MVC nó sẽ không được một ý tưởng tốt hơn để xem xét này Boolean để String 'Converter' trong viewmodel phía máy chủ bất cứ điều gì mà trông giống như ?! – Elisabeth
Khi tôi đặt khối mã cuối cùng của bạn vào tập tin hình ảnh studio html của tôi, tôi nhận được 2 lỗi/cảnh báo: sử dụng toán tử đáng ngờ này và không phải tất cả đường dẫn mã đều trả về một giá trị. – Elisabeth
Một câu hỏi khác tôi có là lý do tại sao bạn đã thực hiện điều này: "this.employeeTypeA()" và không phải "this.employeeTypeA". Theo tôi kiến thức mới bắt đầu javascript đi employeeType là một tài sản NHƯNG bạn gọi như một chức năng? Đây không phải là phê bình chỉ là một câu hỏi tò mò :) – Elisabeth