Spi*_*dey 2 javascript vue.js vuejs2
在我的JavaScript中,我有:
data: {
rooms: [
{type: 'single'},
{type: 'double'}
...
],
selectedSingle: 0,
selectedDouble: 0,
...
},
computed: {
capitalize: function(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
}
Run Code Online (Sandbox Code Playgroud)
在HTML中,我有:
<li v-for="(room, index) in rooms">
<input type="number" v-model="'selected' + capitalize(room.type)">
</li>
Run Code Online (Sandbox Code Playgroud)
问题是我找不到以这种方式访问模型的方法,而我现在看到的唯一方法是销毁v-for并手动进行创建,但这不是最佳的解决方案,因为我有很多“房间”。任何想法都欢迎。
您正在尝试data通过字符串访问属性。为此,您可以使用对象访问属性符号(obj['propname'])$data作为对象:
<input type="number" v-model="$data['selected' + capitalize(room.type)]">
Run Code Online (Sandbox Code Playgroud)
另外,您的计算出的应该确实是一种方法:
methods: { // changed from computed to method
capitalize: function(string) {
Run Code Online (Sandbox Code Playgroud)
演示:
<input type="number" v-model="$data['selected' + capitalize(room.type)]">
Run Code Online (Sandbox Code Playgroud)
methods: { // changed from computed to method
capitalize: function(string) {
Run Code Online (Sandbox Code Playgroud)