Есть компонент:
Шаблон:
<li :class="{active: active}" class="list-item">
<span v-if="model.child" >+</span><span @click="activeSet">{{ model.name }}</span>
<ul v-if="model.child && model.child.length">
<item :model="item" :key="item.id" v-for="(item,index) in model.child"></item>
</ul>
</li>
Код компонента:
Vue.component('item',{
props: ['model'],
template : '#item-template',
data: function () {
return {
active: false,
}
},
methods: {
activeSet: function(){
var self = this;
window.Event.$emit('deactive');
this.active = true;
axios.get('api.php',{
params : {
folder : self.model.path
}
}).then(function(response){
if(response.data.folders && response.data.folders.length)
self.model.child = response.data.folders;
});
}
},
mounted: function(){
var self = this;
window.Event.$on('deactive',function(){
self.active = false;
});
}
} );
App:
var app = new Vue({
el: '#app',
data: {
treeData : []
},
mounted: function(){
var self = this;
axios.get('api.php',{
params : {
folder : '/'
}
}).then(function(response){
self.treeData = response.data.folders;
});
},
});
Отображение дочерних списков происходит только после клика на соседний элемент. Как заставить его выводить данные в момент их изменения?
Документация
self.$set(self.model, 'child', response.data.folders);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть массив 150 юзеров, я его перебираю и вывожу на странице сразу по 150 пользователейКак их можно выводить по 20 пользователей при нажатии...
Есть 10 иконокПри загрузке страницы выбираю рандомную из них и показываю