Каждый раз, когда я хочу добавить форму для заполнения нового контактного лица компании-клиента, я вызываю эту функцию:
$scope.addContact = () => {
$scope.selectedCustomer.contacts.push({});
console.log(JSON.stringify($scope.selectedCustomer));
};
Но я заметил, что есть один клиент, который магически теряет этот контактный объект в какой-то момент после вызова метода, и я не знаю почему, потому что в отладчике выполняются только некоторые стандартные методы angularjs, которые не должны не играет роли в этом, и я их не понимаю.
Обычно консоль выглядит так:
1-е, 2-е и 3-е нажатие на кнопку добавить контакт приводит к:
{"id":135,"masterData":{},"name":"Normal Test","contacts":[{}]}
{"id":135,"masterData":{},"name":"Normal Test","contacts":[{"$$hashKey":"object:2205"},{}]}
{"id":135,"masterData":{},"name":"Normal Test","contacts":[{"$$hashKey":"object:2205"},{"$$hashKey":"object:2207"},{}]}
Но для одного объекта (пока, но я думаю, что есть больше) та же самая ситуация печатает это:
{"id":150,"masterData":{},"name":"Test AG","contacts":[{}]}
{"id":150,"masterData":{},"name":"Test AG","contacts":[{}]}
{"id":150,"masterData":{},"name":"Test AG","contacts":[{}]}
Как вы видите, есть пустой объект, добавленный, но не сохраненный, каждый раз, когда я нажимаю снова добавить контакт , массив контактов сначала пуст.
В dong Монго эти два клиента выглядят одинаково:

Что еще я могу проанализировать, чтобы выяснить, в чем проблема и что с этим делать?
EDIT
Отладкой я нашел место, где рабочий процесс пересекает другой путь, когда он не работает:
contentcript.js, строка 1114 var observerHandler = function(mutations) {...
перебирается, когда он работает, но не достигается во время сбойного процесса - он вызывается после: return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply( elem, arguments ) : undefined;
в jquery.js, строка 5013.
Мой HTML:
<div class="form-group">
<label for="contacts" class="col-sm-3 control-label">Ansprechpartner</label>
<div class="col-sm-9">
<table id="contacts" ng-if="selectedCustomer.contacts.length"
class="table-condensed" cellpadding="10">
<tr>
<th>Name</th>
<th>Telefon</th>
<th>E-Mail</th>
</tr>
<tr ng-repeat="contact in selectedCustomer.contacts">
<td>
<a class="delete" ng-hide="readonly" ng-click="deleteContact(contact)">
<i class="fa fa-minus-circle"></i>
</a>
<input type="text" class="form-control"
ng-readonly="readonly" ng-model="contact.name"
placeholder="keine Angabe">
</td>
<td>
<input type="text" class="form-control" ng-readonly="readonly"
ng-model="contact.phone" placeholder="keine Angabe"/>
</td>
<td>
<input type="text" class="form-control" ng-hide="readonly"
ng-model="contact.email" placeholder="keine Angabe"/>
<a href="mailto:{{contact.email}}" ng-show="readonly">
<input type="text" class="form-control"
ng-readonly="readonly" ng-model="contact.email"
placeholder="keine Angabe"/>
</a>
</td>
</tr>
</table>
<div class="addContact" ng-hide="readonly">
<button class="btn btn-default btn-block btn-sm" ng-click="addContact()"
type="button">+ Ansprechpartner hinzufügen...
</button>
</div>
</div>
</div>