관측 가능한 배열을 가진 KnockoutJS 모델을 가지고 있는데, JSON에서로드 할 수 있어야하고 배열에 데이터 개체를 단순히 푸시 할 수 있어야합니다. 매핑을 사용하여 데이터를로드 할 때 더 이상 배열의 항목 길이/개수를 가져올 수 없다는 것을 알았습니다. 항상 0과 같습니다. 이것이 매핑 때문인 것 같아요? 여기 KnockoutJS 관측 가능한 배열 - 길이를 얻는 방법
가 ghist입니다 : 내가 원래 예를 들어self.Regions = ko.observableArray();
를 사용하여 배열에 넣고 있었어요
var SalesPerson = function (data) {
var self = this;
if (data != null) {
ko.mapping.fromJS(data, {Regions: regionMapping, Customers: customerMapping}, self);
} else {
self.ID = ko.observable();
self.FullName = ko.observable().extend({
required: {
message: '* Persons name needed'
}
});
//self.Regions = ko.observableArray();
self.Regions = ko.mapping.fromJS([]);
self.Customers = ko.mapping.fromJS([]);
//self.Customers = ko.observableArray(); // array of "Customers", who each have many orders
}
참고하고 여기에 related post
을보고 한 후이 self.Regions = ko.mapping.fromJS([]);
로 변경하면 전체의 바이올린입니다 : fiddle example
바이올린을 테스트하려면 "인라인 모델에서로드"를 클릭하십시오. 지역 및 고객의 "개수"는 업데이트해야하지만 그렇지 않으면 0으로 유지됩니다.
자세한 정보를 업데이트 아니에요! – qtime67
나는 왜 내가 "지역은 기능이 아니다"라는 것을 계속 이해하는지 정말로 모른다. 하지만 콘솔 로그를 작성하면 함수가 출력됩니다. – Nick