Что делает следующая функция завершенной областью? $ Apply do? Я не могу найти ответ на этот вопрос, но я вижу примеры, где он используется в директивах.
scope.$apply(function() {
fn(scope, {
$event: evt
})
});
Ближайшее объяснение, которое я мог бы найти означает, что это может быть использовано, когда событие, которое вы хотите ответить не обрабатывается угловыми директивами. Вот explanation Я имею в виду.
Если кто-то может обеспечить предполагаемое использование этого шаблона и что он означает, это будет оценено.
EDIT 1
я видел это раньше. Необходимо больше сна. Поскольку мой пример не является полным рабочим. Это имеет больший смысл после тщательного изучения ссылочного объяснения. fn(scope, {$event: evt})
вызова вызов разобранной ссылки на пользовательскую функцию с помощью директивы разобранной в следующей строке:
var fn = $parse(tAttrs.myContextmenu);
Таким образом, реализация целевой функции захват конкретного события с помощью директивы, а затем подавляя его.
Таким образом, я думаю, это полезно, когда вы не хотите загромождать директивы с помощью определенных функций контроллера и, возможно, запускаете другое событие в ответ на другое событие, а затем позволяете контроллеру обрабатывать его.
Спасибо ! Я пропустил строку, показывающую '$ parse' раньше, поэтому, когда я заметил это до вашего поста, все нажало. Мне нравится, что вы упомянули, что нет необходимости создавать изоляционную сферу. Я думаю, что события 'element.on' - это то, что сработало. Я предполагал, что Angular обертывает их, но это только пользовательские события 'ng- *', которые обертываются. – Rai