По умолчанию, когда v-bind
встречает имя привязки, которое не связано со свойством цели, значение преобразуется в строку и присваивается в качестве атрибута.Поскольку <option>
не имеет свойства с именем area
, объект присваивается как строковый атрибут, который вы наблюдали в DOM.
Вы можете использовать v-bind
'* .prop
модификатор чтобы всегда назначать его как свойство:
<option :area.prop="area" ...>
Vue.component('area-selectors-box', {
template: `
`,
props:['selects']
});
Vue.component('area-selector', {
template: `
{{selection}}
`, реквизиты: ['select'], data () {return {selection: null,}}}) Vue.component ('area-option', {template:`{{area.name}} `, реквизиты: ['area']});new Vue ({el: '#app', data: () => ({select: [{id: 1, options: [{id: 10, area: {term_id: 100, name: 'Europe'}},{id: 11, область: {term_id: 101, имя: «Азия»}},]}, {id: 2, параметры: [{id: 20, зона: {term_id: 200, имя: «Северная Америка»}}, {id: 21, область: {term_id: 201, имя: 'Южная Америка'}},]},]}),})
<script src="https://unpkg.com/vue@2.6.10"></script>
<div id="app">
<area-selectors-box :selects="selects"></area-selectors-box>
</div>