title: knockoutjs unable to parse bindings
body: <p>I am getting the below error from knockoutjs. It clearly knows what AreaNames is most of the time because the UI shows that the AreaNames are displaying, but at some point the javascript freezes with the error.</p>
  
  <pre><code>Uncaught Error: Unable to parse bindings. 
  Message: TypeError: Object #&lt;Object&gt; has no method 'AreaNames'; 
  Bindings value: foreach: ActiveDay().AreaNames()
  </code></pre>
  
  <p>Relevant code:</p>
  
  <pre><code>&lt;ul data-bind="foreach: ActiveDay().AreaNames()"&gt;
      &lt;li data-bind="text: $data"&gt;&lt;/li&gt;
  &lt;/ul&gt;
  
  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);
  </code></pre>