Просмотр различий между областями действия
Я работаю с внешним интерфейсом, который состоит из несколько адаптированных angularjs, и из-за этого был реализован пользовательский метод глубокого клонирования, однако он не безупречен, поэтому я хотел бы изменитьк более популярному JSON.parse(JSON.stringify(obj))
для согласованности.
Проблема здесь в том, что всякий раз, когда используется пользовательский метод глубокого копирования, складные поля остаются открытыми, но всякий раз, когда я пытаюсь использовать JSON.parse(JSON.stringify(obj))
, все поля свертываются.
Стоит отметить, что при внесении изменений в текстовое поле оно автоматически обновляется, выполняя глубокое копирование всего раздела, и, следовательно, причина, по которой все поля свертываются, когда JSON.parse(JSON.stringify(obj))
используется (и они не должны сворачиваться в этой последовательности).
Я сравнил две версии глубокой копии, и они идентичны.
Поскольку глубокая копия назначена $scope
, Я хотел бы сравнить различные версии областей действия (то есть одну, в которой я использую пользовательский метод глубокого клонирования, и одну, где я использую JSON.parse(JSON.stringify(obj))
и наблюдать, есть ли какие-либо состояния или значения, которые изменяются, за исключением самой копии.
Поэтому мой вопрос: есть ли способ сравнить два $ scopes в angularjs?
Правка, вот метод, который использует метод глубокого копирования:
function getModel() {
var deferred = $q.defer();
if ($scope.sectionIdBelongsToCase($state.params.sectionId) && $state.params.section !== 'first') {
var m = new Restapi.CaseSection();
if (!$scope.pageData.module) {
m.$get({
id: $state.params.sectionId,
dtype: $state.params.section
}).then(function () {
$scope.caseSectionCopy = m;
deferred.resolve();
ModelHelper.cloneModel($scope.caseSectionCopy, $scope.caseSection, true)
}, function () {
$timeout(function () {
$state.transitionTo('index');
}, 3000);
});
}
else {
var m = new Restapi.ModuleSection();
m.$get({
module: $scope.pageData.module,
section: $state.params.section
}).then(function () {
$scope.caseSectionCopy = m;
deferred.resolve();
// This is the custom deep clone method
ModelHelper.cloneModel($scope.caseSectionCopy, $scope.caseSection, true);
});
}
} else {
$state.reload();
}
return deferred.promise;
}
Другая проблемаявляется то, что я не знаю, какой метод вызывается после этого. Сборка системы довольно сложна в том смысле, что трудно следить за процессом выполнения.