【发布时间】:2022-01-10 07:40:08
【问题描述】:
我在Vuejs/Nuxtjs 应用程序中遇到了一个棘手的问题。在应用程序中,我正在动态创建多个Nodes。这些Nodes 具有Radio button,我为其分配了v-model。但是,当我更改一个 Vuejs v-model 的值时,会影响所有其他 Node 值。
我知道这个问题正在发生,因为所有Nodes 都使用了相同的v-model。我想为我的Radio button 分配一个不同的V-model,但我想不使用v-for。
我已经在CodeSandbox中创建了示例代码
重现步骤:
- 将
Identifiers拖放到画布中。现在将选择URN。 - 现在将另一个
Identifiers拖放到画布中。现在第一个Identifiers Node: URN将消失。我无法独立处理每个Node value。
问题出现在文件@components/IdentifiersNode.vue 和单选按钮中。
基于 Kissu 响应的代码示例:
<input
id="identifierTypeURN"
:data="identifierSyntax"
value="URN"
type="radio"
name="instanceIdentifierURN"
@input="instanceIdentifiersSyntaxChange('URN')"
>
<label for="identifierTypeURN">URN</label>
<input
id="identifierTypeWebURI"
:data="identifierSyntax"
value="WebURI"
type="radio"
name="instanceIdentifierWebURI"
@input="instanceIdentifiersSyntaxChange('WebURI')"
>
<label for="identifierTypeWebURI">WebURI</label>
有人可以检查并让我知道我在这里做错了什么:https://codesandbox.io/s/cocky-matan-kvqnu?file=/nuxt.config.js
【问题讨论】:
-
你应该使用
:data和@input而不是v-model,这样会更简单。 -
@kissu 非常感谢您的回复。我能够理解
@input并进行了相应的更改,但我不理解:data部分。我试图删除v-model并添加:data但这似乎不起作用。您能否为input type radio提供一些与:data相关的参考资料?我在上面的问题中添加了一个代码示例供您参考。 -
data这里主要是一个道具,名字是占位符。将其替换为您正在使用的状态。此外,您可能需要model,具体取决于单选按钮发送的事件类型。检查那些低级 HTML 的东西总是有点棘手。 -
@kissu 我能够在一定程度上遵循,但仍然有点困惑。这是否意味着我需要创建另一个
customized component?然后在我的IdentifiersNode.vue中使用该自定义组件? -
否,请查看广播事件发送的事件。
标签: vue.js vuejs2 vue-component nuxt.js v-model