Я новичок в Vue.js. Началось с документации и Laracasts. У меня есть небольшая проблема. Я хочу «вычислить», какой из моих результатов выше.Вычисление максимального значения из локальных компонентов
Пример:
У нас есть списки пользователей. Каждому пользователю может быть предоставлено несколько баллов. Всего - 15 баллов для всех пользователей. Мне нужно получить самых популярных пользователей. И я не знаю, где мне нужно определить специальный метод. Попробуйте инициализировать computed
на Vue-экземпляре, но я застрял в том, как получаю дочерние свойства.
Мой вю-тег
<member v-for="member in members" :count=0 v-on:increment="incrementTotal" v-on:decrement="decrementTotal">@{{member.name}}</member>
Вью инстанции:
var app = new Vue({
props: ['counter'],
el: '.vue2',
data: {
members: {!! $theme->members !!},
total: 15
},
computed: {
**// In stuck with this**
topUsers() {
//this.members.filter???
}
},
components: {
'member': member,
'topRate': topRate,
},
methods: {
incrementTotal: function() {
this.total -= 1
},
decrementTotal: function() {
this.total += 1
}
}
})
компонент Член
var member = {
props: ['name'],
template: `
<div class=''>
<li>
<slot></slot>
<button type="button" v-on:click="decrement" class='btn'>-</button>
<span>@{{counter}}<span>
<button type="button" v-on:click="increment" class='btn'>+</button>
<input type='hidden' :name=name :value=counter>
</li>
</div>
`,
**// for each User personal counter**
data: function() {
return {
counter: 0,
}
},
**// increment/decrement user rating**
methods: {
increment: function() {
if (app.total !== 0){
this.counter += 1;
this.$emit('increment');
}
},
decrement: function() {
if (this.counter !== 0){
this.counter -= 1;
this.$emit('decrement');
}
}
},
}
Спасибо за ваши ответы.
- ваш экземпляр vue внутри вашего файла клинка или в его собственном файле, который не обрабатывается кликом? –
В чем проблема, с которой вы столкнулись здесь, разве у вас нет данных в членах? – Saurabh
Экземпляр Vue внутри моего файла клинка. – Danlex