我无法找到如何从另一个变量值创建变量。
我从AJAX调用中获取此变量(使用vue-resources
):
langs: {1:'fr', 2:'en', 3:'ar'},
但是,我不知道langs
会有多少属性。
如何动态获取此变量:
newVar: {
has_lang: '1',
values: [{ is: 'fr', val:''}, { is: 'en', val:''}, { is: 'ar', val:''}]
},
因此,在newVar
中,fr
,en
和ar
属性已使用langs
中的值自动生成。
我打算使用values
数组使用v-model绑定到md-input
输入的值:
<md-input-container v-for="value in newVar.values">
<label>@{{ attribute.attribute }} @{{ value.is }}</label>
<md-input v-model="value.val"></md-input>
</md-input-container>
这种操作是最佳做法吗?因为我无法找到使用v-model
来解决从v-for
循环生成的输入的解决方案。
答案 0 :(得分:0)
只要newVar
属性发生更改,就可以使用观察程序设置langs
属性。如果您将mounted
变量作为道具传递或在langs
内定义,则还需要在data()
生命周期事件期间执行此操作。
在你的情况下,我会在两个点添加一个方法来调用:
data() {
return {
langs: {1:'fr', 2:'en', 3:'ar'},
newVar: {},
};
},
methods: {
updateValues() {
let newVar = {
has_lang: (this.langs !== {}) ? '1' : '0',
values: [],
};
for (let lang in this.langs) {
newVar.values.push({ is: this.langs[lang], val: '' });
}
this.newVar = newVar;
}
},
watch: {
langs() {
this.updateValues();
}
},
mounted() {
this.updateValues();
}