Я пытаюсь отменить изменения, если пользователь нажимает значок закрытия, и сохраняет его, если нажимает кнопку сохранения. Но в документации PrimeNG Sidebar я не могу найти способ обрабатывать оба события клика по отдельности. Возможно ли это сделать?
Я думаю, что вы слишком много думаете. Кнопка закрытия, показанная переменной PrimeNG showCloseIcon, обрабатывается самим PrimeNG. Все, что он делает, это закрывает элемент боковой панели. Если вы хотите закодировать пользовательское поведение, вам придется закодировать свои собственные кнопки.
Для закрытия кнопки закрытия PrimeNG вы можете подключиться к событию onHide и связать с ним функцию. Для кнопки сохранения вы просто подключаетесь к onClick, как и к любому другому событию Angular.
Итак, в коде: HTML
<p-sidebar [(visible)] = "display" (onHide) = "close()">
<!-- Your form -->
<button (click) = "save()">Save</button>
</p-sidebar>
HTML в случае пользовательской кнопки закрытия
<p-sidebar [(visible)] = "display">
<button (click) = "close()"><span class = "x-button">×</span></button>
<!-- Your form -->
<button (click) = "save()">Save</button>
</p-sidebar>
CSS для кнопки
span .x-button {
color:gray;
opacity:0.7;
font-size:1.5em;
}
JavaScript
function save() {...}
function close() {...//set display to false and do what you need to do}
Надеюсь это поможет!
В этом случае я рекомендую не использовать встроенную кнопку закрытия, а вместо этого использовать пользовательскую кнопку с событием щелчка.
спасибо за вклад, я отключил встроенную кнопку закрытия и поместил пользовательскую :)
Нет проблем, рад, что смог помочь! Не забудьте отметить ответ :)
onhide срабатывает при каждом закрытии события, единственная проблема в том, что я не могу различить, что вызвало его закрытие