<h1 class="w-title __w-first">{{t "tutorial.interrupt_closing"}}</h1>

<p>Прерывание закрытия бывает полезно если данные в диалоговом окне невалидны. Для прерывания закрытия окна нужно переопределить actions отвечающие за это - <code>accept</code> и <code>decline</code>. Это можно сделать так:</p>

<pre data-src="examples/tutorial/interrupt-closing/controller-1.javascript"></pre>

<p><button class="w-btn" onclick={{action "showDialog"}}>Попробуйте сами</button></p>

<p>В примере выше при создании диалога был передан контроллер как контекст, а также указаны имена его actions (acceptHandler и declineHandler), которые отвечают за закрытие, поэтому default actions компонента не отработали и окно не закрылось. В actions контролера первым аргументом приходит объект компонента presenter, у него есть 2-а метода предназначенные для его закрытия: accept и decline при вызове этих методов окно уничтожается, а у промис, который мы получили при создании, становится resolved и rejected соотвественно.</p>

<p>Частный случай в котором обойтись без прерывания закрытия не получится - показ формы в диалоговом окне, поскольку оно не может быть закрыто "с успехом" до тех пор пока форма не валидна. Подробнее об этом говорится на странице {{#link-to 'cookbook.working-with-forms'}}{{t "cookbook.working_with_forms"}}{{/link-to}}</p>
