Tôi đang làm việc với knockoutj và tôi đang cố gắng tạo ra cá thể ViewModel từ dữ liệu JSON. Theo tài liệu knockoutjs tôi có thể sử dụng câu lệnh:Khi ánh xạ các giá trị ko.mapping.fromJS là null
ko.mapping.fromJS(data, viewModel);
Ở đây mã của tôi:
var pledgeVM=function(){
this.name=ko.observable();
this.Assets=ko.observableArray([]);
this.StartEdit=function(assetModel){
};
};
pledge = {"name":"Moses","Assets":[{"CityId":13,"commetns":null},{"CityId":14,"commetns":null}]};
var pledgeVMinstance=new pledgeVM();
ko.mapping.fromJS(pledge,pledgeVMinstance);
đối với một số dữ liệu lý do không dân cư (pledgeVMinstance.name() là undefined) trừ khi tôi thay đổi báo cáo kết quả đến:
ko.mapping.fromJS(pledge,{},pledgeVMinstance);
Có thể ai đó có thể giải thích cho tôi lý do tại sao mọi thứ xảy ra theo cách đó.
Cảm ơn
Đây chỉ là một phần sự thật. Nếu bạn gọi với hai đối số: 'ko.mapping.fromJS (data, mappedObject)' trong đó đối số thứ hai là một "mappedObject" đã được tạo bởi plugin ánh xạ (vì vậy nó có thuộc tính '__ko_mapping__' đã được xác định), nó sẽ xử lý đối số thứ hai là viewModel và không phải là các tùy chọn. Xem: https://github.com/SteveSanderson/knockout.mapping/blob/master/knockout.mapping.js#L96. Đó là cách trong tài liệu mẫu cập nhật 'ko.mapping.fromJS (data, viewModel);' works. – nemesv
Không biết điều đó. Cảm ơn. –
Vì vậy, trong tài liệu hướng dẫn khi bạn sử dụng 2 prameters -Các thứ hai là lựa chọn? vậy tại sao nó sais "ko.mapping.fromJS (data, viewModel);" thứ hai là viewModel? – happyZZR1400