在 Vue.js 中的对象属性之间切换
Switch between object properties in Vue.js
问题
我想知道如何在Vue.js 中的对象属性 之间切换。
这是一个视觉示例:
var vm = new Vue({
el: '#app',
data:{
myObject:{
one: 'lorem',
two: 'ipsum'
}
}
});
我希望能够在 html 的同一位置从 {{ myObject.one }}
更改为 {{ myObject.two }}
,但我不知道是否可行。
我尝试了两种解决方案,但它们需要更多的代码和资源:
1) 对每个对象 属性 重复 html 并使用 v-show
2) 仅使用一个 属性 并通过 ajax
更改其内容
是否有不需要多次 ajax 调用或重复 html 的更好方法?
语境
我想制作一个多语言应用程序,点击一个按钮即可更改内容。代码如下所示:
<div id="app">
<h1>{{ title.en }}</h1>
<div>
<script>
var vm = new Vue({
el: '#app',
data:{
title:{
en: 'Hello',
es: 'Hola'
}
}
});
</script>
我想从 {{ title.en }}
切换到 {{ title.es }}
非常感谢
您可以将 lang
变量设置为 'en'
之类的值并使用 title[lang]
。这与调用 title.en
.
相同
new Vue({
el: '#app',
data: {
lang: 'en',
title: {
en: 'Hello',
es: 'Hola'
}
}
});
<div id="app">
<ul>
<li @click="lang = 'en'">English</li>
<li @click="lang = 'es'">Spanish</li>
</ul>
<h1>{{ title[lang] }}</h1>
</div>
问题
我想知道如何在Vue.js 中的对象属性 之间切换。
这是一个视觉示例:
var vm = new Vue({
el: '#app',
data:{
myObject:{
one: 'lorem',
two: 'ipsum'
}
}
});
我希望能够在 html 的同一位置从 {{ myObject.one }}
更改为 {{ myObject.two }}
,但我不知道是否可行。
我尝试了两种解决方案,但它们需要更多的代码和资源:
1) 对每个对象 属性 重复 html 并使用 v-show
2) 仅使用一个 属性 并通过 ajax
更改其内容是否有不需要多次 ajax 调用或重复 html 的更好方法?
语境
我想制作一个多语言应用程序,点击一个按钮即可更改内容。代码如下所示:
<div id="app">
<h1>{{ title.en }}</h1>
<div>
<script>
var vm = new Vue({
el: '#app',
data:{
title:{
en: 'Hello',
es: 'Hola'
}
}
});
</script>
我想从 {{ title.en }}
切换到 {{ title.es }}
非常感谢
您可以将 lang
变量设置为 'en'
之类的值并使用 title[lang]
。这与调用 title.en
.
new Vue({
el: '#app',
data: {
lang: 'en',
title: {
en: 'Hello',
es: 'Hola'
}
}
});
<div id="app">
<ul>
<li @click="lang = 'en'">English</li>
<li @click="lang = 'es'">Spanish</li>
</ul>
<h1>{{ title[lang] }}</h1>
</div>