一天的美好时光,
我试图创建一个表单,这将允许文章的多语言本地化
我现在遇到的问题是,通过使用Vue的vue-editor插件,我无法编辑这两个字段。
问题是:
['ru', 'en']
v-for
,我创建了一张看起来像这样的卡片(bootstrap 4)
VueEditor
组件位于修改标签上。null
到''
)< / LI>
<vue-editor :id="locale + '_content_editor'" v-model="article[selectedLocale].content"></vue-editor>
以下是组件的数据结构:(区域设置作为组件的参数传递)
article: {
ru: {
title: null,
slug: null,
content: null,
belongs: null,
category: null,
tags: [],
loadingTags: false,
availableTags: [],
published: {
date: new Date(),
published: false,
time: null,
timeOptions: {
step: '00:05'
}
}
},
en: {
title: null,
slug: null,
content: null,
belongs: null,
category: null,
tags: [],
loadingTags: false,
availableTags: [],
published: {
date: new Date(),
published: false,
time: null,
timeOptions: {
step: '00:05'
}
}
}
},
如果我手动创建VueEditor
的实例,我可以更新结构中定义的变量,但是,当我尝试生成页面时,组件只会更新从null
到''
的结构中的值。
非常感谢那些了解其原因或知道如何解决这个问题的人的帮助 如果需要进一步说明,请在此提供!
P.S。从一开始就将内容设置为''
不会改变任何内容
所有其他绑定都正常工作(假设article[selectedLocale].property_name
符号已到位)
更新
我发现,当vue-editor
加载到标签中时(只有当用户点击它时,它的标签才会显示)那么它将无法访问数据,但如果我手动加载(在页面加载,选项卡外),然后我可以成功更新对象数据。有任何想法如何克服这个问题?
更新#2 好的,经过几个小时后,我发现了可能会阻碍使用组件的问题。
表单的生成方式如下:
<div v-for="(locale, index) in locales">
<div v-for="(action, index) in actions">
<template v-if="matchCurrentAction('edit')">
<vue-editor :id="locale + '_content_editor'" v-model="article[selectedLocale].content" :key="locale + '-editor'"></vue-editor>
</template>
</div>
</div>
这会加载同一组件的8个实例(ru
为4,en
为4)。
所以问题归结为:
如何仅加载该组件的2个实例,每种语言加载1个#34;。我已经尝试谷歌了,但似乎我无法找到关于如何做到这一点。