Когда AngularJS запускает $ onEval, есть ли способ сразу сказать, какие значения в этой области изменились? - PullRequest
2 голосов
/ 09 сентября 2011

Я хочу синхронизировать изменения на сервере автоматически.В настоящее время я обнаруживаю изменения в обработчике scope.$onEval с помощью JSON, сериализующего состояние приложения и сравнивающего это с ранее сериализованной копией, используя diff-match-patch

Мне было интересно, есть ли в AngularJS что-нибудь встроенное, чтобы сделать это более эффективным.

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Я работаю над чем-то похожим. Например, @psyho предложил использовать $ watch , чтобы перехватить изменения.

scope.$watch("dataObject",function (newValue, oldValue) {
    //calculate changes
    //send the changes to the server
});

Затем я использую логику из jquery diff , чтобы вычислить, какие изменения были внесены.

1 голос
/ 10 октября 2011

Вы можете использовать несколько $ watch вместо одного $onEval (обратите внимание, что $ watch может принимать функцию в качестве аргумента вместо строки / выражения и в версии> = 0.10.0 наблюдаемые значения сравниваются с использованием angular.Object.equals ).Кроме этого, я не знаю ни одного механизма AngularJS, который был бы полезен для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...