Сравните различия между двумя моделями магистрали? - PullRequest
4 голосов
/ 04 октября 2011

У меня есть приложение, которое обновляет модели магистрали между двумя клиентами через веб-сокеты.

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

У меня все это работает отлично, но сейчас я раздуваю модель на месте, забивая старую. Насколько я знаю, это означает, что все меняет состояние и все снова становится само собой.

Как мне сравнить и применить только измененные атрибуты модели на принимающей стороне?

Спасибо !!!

1 Ответ

3 голосов
/ 04 октября 2011

Я предполагаю, что вы берете хэш атрибутов из удаленной модели и вызываете

localModel.set remoteModelHash

В этом случае для каждого из атрибутов в этом хэше запускается событие change только для тех, чьи значения отличаются (точнее, для тех, кто не прошел тест _. IsEqual ).Это означает, что у вас не должно быть ненужного рендеринга представлений и т. Д.

Вы можете проверить это, установив

localModel.changedAttributes()

после вызова set.

...