ノックアウトjsから以下のエラーが発生しています。ほとんどの場合、AreaNames が表示されていることを UI が示しているため、AreaNames が何であるかを明確に認識していますが、ある時点で JavaScript がエラーでフリーズします。
Uncaught Error: Unable to parse bindings.
Message: TypeError: Object #<Object> has no method 'AreaNames';
Bindings value: foreach: ActiveDay().AreaNames()
関連コード:
<ul data-bind="foreach: ActiveDay().AreaNames()">
<li data-bind="text: $data"></li>
</ul>
var scheduleModel = function (shiftCellToggle) {
var vm = this;
vm.ActiveDay = ko.observable({ AvailableShiftCategories: [] });
vm.CustomMapping = {
'Weeks': {
create: function (options) {
var week = new scheduleWeekModel(vm, shiftCellToggle);
ko.mapping.fromJS(options.data, week.CustomMapping, week);
return week;
}
}
};
}
var scheduleWeekModel = function (scheduleModel, shiftCellToggle) {
var vm = this;
vm.CustomMapping = {
'Days': {
create: function (options) {
var day = new scheduleDayModel(scheduleModel, shiftCellToggle);
ko.mapping.fromJS(options.data, day.CustomMapping, day);
return day;
}
}
};
var scheduleDayModel = function (scheduleModel, shiftCellToggle) {
var vm = this;
vm.CustomMapping = {
'AvailableShiftCategories': {
create: function (options) {
var availableShiftCategory = new availableShiftCategoryModel(scheduleModel, vm, shiftCellToggle);
ko.mapping.fromJS(options.data, availableShiftCategory.CustomMapping, availableShiftCategory);
return availableShiftCategory;
}
}
};
vm.AreaNames = ko.observableArray([]);
var viewModel = new scheduleModel(createShiftToggle());
ko.applyBindings(viewModel);