РЕДАКТИРОВАТЬ: я ответил на свой вопрос. Я не знаю, как пометить это как решенное, так как SO не позволяет мне голосовать за мой собственный ответ прямо сейчас. Спасибо всем.
Я пытаюсь создать окно подтверждения (с просьбой удалить макет), в котором пользователь должен нажать confirm
или cancel
- confirm
означает «да, удалить макет и закрыть окно подтверждения », cancel
означает« просто закрыть окно ».
Окно подтверждения открывается, когда пользователь нажимает RemoveButton
- это означает, что RemoveButton не выполняет работу по« удалению »до confirm
нажата. При нажатии RemoveButton
должен появиться диалоговое окно.
Проблема в том, что мое диалоговое окно не отображается. Я запустил Chrome dev tool и убедился, что setShowRemoveLayoutDialog(true)
работает, но removeLayoutDialog
не открывается. Даже когда я установил точку останова инструмента dev на public removeLayout(layoutName: string)
, инструмент dev никогда не достигнет ее.
Может кто-нибудь сказать мне, что я делаю не так?
(нам не нужно говорить о CSS здесь, поскольку он уже построен другими моими товарищами по команде)
(я не могу сделать .confirm(confirm message)
, потому что он вызовет no-alert
ошибка для lint. Поэтому я должен вставить его в template
и сделать для него div или элемент).
Спасибо!
Это мой шаблон Vue / html:
<RemoveButton @press="setShowRemoveLayoutDialog(true)">
<removeLayoutDialog v-if="showRemoveLayoutDialog"
:layout-name="props.node.name"
@confirm="removeLayout"
@cancel="setShowRemoveLayoutDialog(false)"/>
</RemoveButton>
Это мой <script>
:
@Component({
removeLayoutDialog,
...
})
export default class ThisClass {
...
public showRemoveLayoutDialog = false;
public removeLayout(layoutName: string) {
this.doRemoveLayout(layoutName);
this.showRemoveLayoutDialog = false;
}
public setShowRemoveLayoutDialog(isShown: boolean) {
this.showRemoveLayoutDialog = isShown;
}
}