Когда я пытаюсь передать массив объектов моему компоненту в качестве опоры ...
[{"prize":"first","abbr":"1st Prize","value":"50"},{"prize":"second","abbr":"2nd Prize","value":"30"},{"prize":"third","abbr":"3rd Prize","value":"20"}]
... Я не получаю 3 ожидаемых столбца, но получаю более 100,и мне не хватает моего заполнителя и атрибута данных в текстовом поле.
export default {
props: ['settings', 'colour', 'draw_type'],
data: function() {
return {
prizes: {
first: {
name: '',
telephone: ''
},
second: {
name: '',
telephone: ''
},
third: {
name: '',
telephone: ''
},
fourth: {
name: '',
telephone: ''
}
}
}
},
...
...
Как я могу исправить свой код, чтобы я мог передать заданный массив объектов как объект и по-прежнему правильно его отображать?
Когда я жестко кодирую settings
, таблица отображается правильно:
<template>
<form @submit.prevent="submit" class="mb-5">
<div class="row">
<div class="col-md-3" v-for="(setting, index) in settings">
<p>{{setting.abbr}}</p>
<div class="card">
<div :class="colour">
<div class="box">
{{ setting.prize }}
</div>
</div>
<div class="card-body text-center">
<h5 class="card-title">£{{ setting.value }}</h5>
<div class="form-group">
<input type="text" class="form-control" :placeholder="setting.abbr" maxlength="2" :data-prize="setting.prize" v-model="setting.prize">
</div>
</div>
</div>
</div>
</div>
<table class="table table-striped">
<tr>
<th>Prize</th>
<th>Number</th>
<th>Name</th>
<th>Telephone</th>
</tr>
<tr v-for="(setting, index) in settings">
<td>£{{ setting.value }}</td>
<td>{{ setting.prize }}</td>
<td>{{ prizes[setting.prize].name }}</td>
<td>{{ prizes[setting.prize].telephone }}</td>
</tr>
</table>
<div class="form-group row">
<div class="col-sm-8">
<button type="submit" class="btn btn-primary">
Save Results
</button>
</div>
</div>
</form>
</template>
<script>
export default {
props: ['colour', 'draw_type'],
data: function() {
return {
settings: [
{
"prize":"first",
"abbr":"1st Prize",
"value":"50"
},
{
"prize":"second",
"abbr":"2nd Prize",
"value":"30"
},
{
"prize":"third",
"abbr":"3rd Prize",
"value":"20"
}
],
prizes: {
first: {
name: '',
telephone: ''
},
second: {
name: '',
telephone: ''
},
third: {
name: '',
telephone: ''
},
fourth: {
name: '',
telephone: ''
}
}
}
},
mounted() {
console.log(this.settings);
}
};
</script>