KnockoutJS правильный способ обновления observableArray AJAX

Как в KnockoutJS правильно обновлять наблюдаемый массив данных JSON каждый раз, когда выполняется команда AJAX?

Прямо сейчас я очищаю массив, используя что-то вроде viewmodel.items([]), а затем повторно заполняю его данными JSON с сервера.Если не считать использования подключаемого модуля сопоставления KnockoutJS (что может быть единственным способом сделать это), каков правильный путь?

Логика моего сервера будет каждый раз отправлять одни и те же данные, поэтому я не могу просто повторять и помещать элементы в массив, если только мне не нужны дубликаты.

//// Добавляю, как я это делаю сегодня ////

Я не уверен, почему я делаю это именно так, но именно так я изначально понял, как обновляться. Итак, в основном, как я уже говорил, я получаю данные JSON, а затем передаю их примерно так:

    _model.addIncident = function (json) {
       var checked = json.UserTouches > 0 ? true : false;
       _model.incidents.push({
          id: ko.observable(json.IncidentIDString),
          lastTouchId: ko.observable(json.UserLastTouchIDString),
          weight: ko.observable(json.Weight),
          title: ko.observable(json.Title),
          checked: ko.observable(checked),
          createdOn: ko.observable(json.IncidentCreatedOn),
          servicename: ko.observable(json.Servicename),
          inEdit: ko.observable(false),
          incidentHistory: ko.observableArray(),
          matchScore: ko.observable()
      });
   };

для каждого узла в массиве JSON. Как видите, у меня есть несколько пользовательских наблюдаемых, которые строятся с каждым проходящим фрагментом данных. Возможно, это неправильный путь, но до сих пор он отлично работал.

6
задан farina 19 March 2012 в 18:35
поделиться