Так я передаю объект с данными в родительском контроле,который находится в popup
окне:
<k-control :data="data" :list_analyses="list.find(el=> el.AnalysisName == 'Гемоглобин')"/>
В дочернем контроле он приходит в props: ['list_analyses']
. Я его раскладываю в input
с проверками :value="list_analyses ? list_analyses.UnitName : ''"
.
Проблема в отслеживании изменений этого объекта, который приходит в дочерний компонент. Есть watch
, который должен следить за изменениями:
watch: {
list_analyses: {
handler: function (newVal, oldVal){
console.log('newVal = ',newVal, 'oldVal = ', oldVal)
},
deep: true
}
}
А он срабатывает только в момент, когда открываю popup
окно, но не в момент редактирования данных.
Судя по вопросу, основная проблема - передача и синхронизация данных между дочерним и родительским компонентами. Схожие ответы.
// Отключим ненужные для примера
// сообщения в консоли.
Vue.config.productionTip = false
Vue.config.devtools = false
const KControl = {
props: ['list', 'analysis_name'],
data() {
return {
analysis: {}
}
},
// При создании компонента отыскиваем необходимый элемент.
created() {
this.analysis = this.$props.list.find(el => el.AnalysisName == this.$props.analysis_name)
},
template: `<div>
<label>{{ analysis_name }}</label>
<input type="text" v-model="analysis.UnitName" />
</div>`,
}
new Vue({
el: '#app',
components: {
'k-control': KControl
},
data: {
list_analyses: [
{AnalysisName: 'Гемоглобин', UnitName: 4.8},
{AnalysisName: 'Aльбумин', UnitName: 43.4}
]
}
});
label {
display: block;
margin-top: 15px;
}
<div id="app">
<template v-for="item in list_analyses">
<!--
Передаём в дочерний компонент весь список и идентификатор,
по которому будет осуществлен поиск необходимо элемента из списка.
-->
<k-control :list="list_analyses" :analysis_name="item.AnalysisName"></k-control>
</template>
<h3>Данные в родительском компоненте:</h3>
<pre>{{ list_analyses }}</pre>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10"></script>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть таблица, в нее по клику будут записываться событияСейчас они пустые, там есть только число месяца
Учусь делать сайт на HTML\CSS и меня попросили встроить пару скриптов(время,дата)Порылся в инете, так и не понял как встроить их в мой сайт
Добрался до самой сложной части проектаНужно получать информацию из сайта который целиком и полностью построен на js(на zepto если быть конкретней)