Есть обработчик события
let orthography = $scope.appCTRL.orthography;
let url = attributes[DIRECTIVE];
element.on('keydown', (_event) => {
if (_event.keyCode == 13 && _event.ctrlKey) {
orthography.isOpen = true;
orthography.text = window.getSelection().toString().trim();
if (window.getSelection().focusNode) {
orthography.fragment = window.getSelection().focusNode.data;
}
}
});
И тест
document.body.innerHTML =
'<div data-ng-controller="appController" data-app-orthography="'+ urlOrthography +'" id="js-karma-test">' +
'<form class="modal-cross">' +
'<div class="modal-spelling__close" data-ng-click="appCTRL.orthography.isOpen = false">' +
'<i class="fa fa-times"></i>' +
'</div>' +
'<input type="text" value="бла бла бла" disabled="disabled">' +
'<textarea rows="10" cols="45" placeholder="Ваш комментарий" data-ng-model="appCTRL.orthography.comment">коммент</textarea>' +
'<input type="submit" value="Отправить" data-ng-click="appCTRL.orthography.onSubmit = true;">' +
'</form>' +
'</div>';
reCompileElementService.replace(angular.element(document.querySelectorAll('#js-karma-test')), scope);
scope.$digest();
angular.element(document.querySelector('#js-karma-test')).trigger({type: 'keydown', keyCode: 13, ctrlKey: true});
Так вот... Почему значение isOpen меняется в scope.$$childHead.orthography.isOpen, а не в scope.orthography.isOpen ?