Khi tôi liên kết dữ liệu số trong mô hình khung nhìn của tôi bằng cách loại trực tiếp, nó hiển thị chính xác nhưng thay đổi kiểu dữ liệu thành chuỗi nếu người dùng thay đổi giá trị thẻ đầu vào. Vấn đề với việc gửi chuỗi là máy chủ mong đợi một giá trị số không có sẵn chuyển đổi tiềm ẩn.Knockout.js: định dạng đầu vào thời gian và giới hạn giá trị
Bất kỳ cách nào để yêu cầu loại trực tiếp để duy trì kiểu dữ liệu của giá trị thuộc tính ban đầu?
Mã mẫu của tôi khớp với tên kiểu xem cho tên thẻ đầu vào. Tôi sử dụng knockout không phô trương để làm các ràng buộc, mà hoạt động tốt.
// Bind the first object returned to the first view model object
// FNS is the namespace, VM is the view model
FNS.VM.Items[0] = ko.mapping.fromJS(data.Items[0]);
// For each property found, find the matching input and bind it
$.each(FNS.VM.Items[0], function (indexInArray, valueOfElement) {
var attrName = indexInArray;
var attrValue;
if (typeof valueOfElement == "function")
attrValue = valueOfElement();
else
attrValue = valueOfElement;
var a = $('input[name="' + attrName + '"][type="checkbox"]');
if (a.length)
a.dataBind({ checked: 'VM.Items[0].' + attrName });
var b = $('input[name="' + attrName + '"][type="radio"]');
if (b.length)
b.dataBind({ checked: 'VM.Items[0].' + attrName });
var c = $('input[name="' + attrName + '"][type="text"]');
if (c.length)
c.dataBind({ value: 'VM.Items[0].' + attrName });
});
ko.applyBindings(FNS);
câu trả lời của bạn đưa tôi đến với [câu trả lời này] (http://www.knockmeout.net/2011/03/reacting-to-changes-in- knockoutjs.html) dưới ** Có thể ghi phụ thuộc vào các dịch vụ lưu trữ **, trong đó tập chung trả lời câu hỏi của tôi. Cảm ơn –
Lưu ý nhanh: Đọc qua các cam kết Knockout Tôi thấy RP Niemeyer đã tham chiếu câu trả lời của riêng mình ở đây với một lưu ý nhanh: https://github.com/knockout/knockout/pull/1334 Có cách hỗ trợ nhiều hơn để gọi dòng ko. bindingHandlers.value.init ... –
Bất cứ ai đọc điều này, xin lưu ý dependsObservable() bây giờ được gọi là computed() – Quango