Я не правильно использую пропеллер с @emit, но не знаю, как это исправить. Мне нужно знать неглобальный способ регистрации, чтобы сделать это правильно (я, кстати, совершенно новичок в Vue).
Вот мой html в файле parent.vue
:
<deleteLayoutDialog v-if"showDeleteLayoutDialog"
:layout-name="dialogNameToDelete
@confirm="removeLayout(layout-name)"
@cancel="setShowDeleteLayoutDialog(false)"/>
Вот файл child.vue
, где определены реквизиты deleteLayoutDialog
и @emit:
// html
// <script>
// import { //sth } from 'files'
// @Component({ // components })
export default class DeleteLayoutDialog extends Vue {
@Prop({required: true, type: String})
public readonly layoutName: string;
@Emit()
public confirm(layoutName: string) {
// do something
}
}
</script>
Здесь мой javascript (внутри parent.vue
), где columnLayoutName
, кажется, имеет значение NaN
(в chrome dev tool)
public removeLayout(columnLayoutName: string) {
if (this.columnLayout.name === columnLayoutName) {
// (this.columnLayout is defined somewhere in this code)
// do something...
}
}
Как мне изменить мои html
и removeLayout
, чтобы я правильно использовал опору? Спасибо.