当前位置: 首页 > 知识库问答 >
问题:

如何在Vue中创建动态编辑器表单组件

蒲昀
2023-03-14

我是Vue.js的新手。我正在创建一个应用程序,其中我使用Vuetify和nuxt,并希望有一个可重用的编辑器模式。到目前为止,我发现我可以使用V-Dialog。我有一个宠物列表,我想要一个编辑器,该宠物弹出时,单击编辑操作链接每行。编辑器应该从后端加载pet对象并显示编辑器表单。当点击模式中的Save按钮时,宠物应该被保存并通知家长,以便它可以更新列表。我希望能够添加宠物在另一个页面(例如在一个人页面,我希望能够选择现有的宠物,也注册一个新的宠物)使用相同的编辑器。

有没有推荐的方法来构造一个组件,它可以用给定的id发送信号来加载pet,或者打开一个空表单,还可以处理保存pets和向家长发送pet已更新或创建的信号?

共有1个答案

魏硕
2023-03-14

为什么不使用道具作为输入信号,而发射事件作为输出信号?

在下面的示例中,编辑器组件对petid是反应性的,您可以通过将petid设置为null来关闭对话框

editordialog.vue中:

<template>
  <v-dialog :value="petId !== null">
    <!-- You editor -->
    <v-button @click="onSave">Save</v-button>
  </v-dialog>
</template>

<script>
export default {
  props: {
    petId: {
      type: String,
      default: '' // '' means create new pet
    }
  },
  watch: {
    petId: {
      immediate: true,
      handler(petId) {
        if (petId === null) return
        // fetch data or create empty data
      }
    }
  }
  methods: {
    onSave(): {
      const data = xx // your logic here
      this.$emit('save', data)
    }
  }
}
</script>

而在父级中:

<EditorDialog pet-id="blah" @save="handler" />

您可以将pet-idinitial设置为null,并且该对话框不会在服务器端呈现为打开状态。此外,如果初始值始终为null,则可以删除immediate:true

 类似资料:
  • 我正在开发一个NetBeans插件,它需要使用“动态”菜单,因为目前必须在专用于某个菜单项及其操作的类中硬编码。然而,我希望允许用户通过插件提供的UI更改菜单项的值(它们的作用-这将在主方法中处理变量,我不允许用户为主方法本身编写代码-它们被调用的内容及其关联的键盘快捷键),以及添加和删除菜单项。我的插件可能会从一个文件中读取这些首选项,理想情况下,只有一个类可以创建所有这些动态菜单项,其值在首选

  • 在我的Grails项目中,我使用PDF插件从gsp页面生成PDF。 它工作得很好,但我想为用户添加更多功能,因此我想允许用户编辑PDF基本模板(在gsp页面中定义),特别是我想允许编辑模板内的文本并将其存储在某处。 有人知道怎么做吗?

  • 我有一个表视图,其中很少有列是可编辑的,也很少有不可编辑的。当我在第一列中输入一些值并按tab键时,将调用一个服务,返回的对象将映射到表行。我的要求是根据返回对象中的标志将不可编辑列设置为可编辑(仅在我编辑过的行中)。下面是调用服务并将返回的对象设置为行的代码。 请建议如何在运行时根据标志将不可编辑的列转换为可编辑的列。

  • 问题内容: 我想为form.ModelChoiceField创建动态标签,我想知道如何做到这一点。我有以下表单类: 默认标签由Profile定义中指定的unicode函数定义。但是,需要动态创建由ModelChoiceField创建的单选按钮的标签。 首先,我认为我可以按照Django文档中的描述简单地覆盖ModelChoiceField。但这会创建静态标签。它允许你定义任何标签,但是一旦做出选择

  • 问题内容: 我想动态创建一个二维数组。 我知道列数。但是行数正在动态更改。我尝试了数组列表,但它仅将值存储在单个维度中。我能做什么? 问题答案: 由于列的数量是恒定的,你可以有一个的。 由于它以a 为后缀,因此行数可以动态增加和减少。每行都有一个,它是静态的,但是您说列数是固定的,因此这不是问题。

  • 问题内容: 有什么办法可以在jtable中动态制作不可编辑的单元格吗?每当用户提供类似false的输入时,我都想创建不可编辑的单元格…我已经在DefaultTableModel isCellEditable方法中看到过,但是如果我想使用它,则每次创建新对象时都会创建它,因此我想动态更改它为不可编辑。有人可以帮我吗?。谢谢 问题答案: 其他班级 然后,您可以通过使用存储的myModel变量并在其上调