2017-02-20 29 views
0

мой взгляд, как это:Как добавить динамический динамический класс vue js 2?

<ul class="nav nav-tabs nav-cat"> 
    @foreach($countries as $country) 
     <li role="presentation" class="{{ $loop->first ? 'active' : '' }}"><a href="javascript:;" data-toggle="tab" @click="$refs.player.getPlayer({{ $country->id }})">{{ ucfirst($country->name) }}</a></li> 
    @endforeach 
</ul> 

Я хочу добавить class="active" литий тег. Таким образом, при нажатии кнопки тег li будет активным

Как это сделать?

ответ

-4

Использование JQuery:

$("#ID").addClass("active"); 

Использование Javascript:

document.getElementById("ID").className += " active"; 
+1

Если вы используете jquery или javascript, я могу это сделать. Но, как реализовать его, используйте vue.js 2? –

+0

Что, вы хотите использовать vue.js конкретный способ сделать это? последний проверенный vue.js написан в javascript. это означает, что, используя версию javascript, которую вы делаете с нуля, все, что может предложить vue.js, было бы оберткой для той же функции, которую я дал вам выше. –

+1

«все, что может предложить vue.js, было бы оберткой для той же функции». Ум ... нет. Vue - это нечто большее, чем просто простая оболочка. Это также мощная библиотека привязки данных и наблюдения. Если вы хотите обойти это и сделать свое дело в простой JS, это тоже хорошо, но тогда нет смысла использовать Vue в первую очередь. –

-1

Вы можете использовать v-for в цикле через переменную в vue.js и использовать индекс для проверки первого элемента. Используйте метод v-bind:class для динамического применения класса. Правильное решение для этого должно быть:

<ul class="nav nav-tabs nav-cat"> 
    <li v-for="(country, index) as {$countries}" role="presentation" :class="{index == 0 : 'active'}"><a href="javascript:;" data-toggle="tab" @click="$refs.player.getPlayer(country.id)">{{ ucfirst(country.name) }}</a> 
    </li> 
</ul> 
+0

Существует ошибка: 'Undefined variable: country (View: C: \ xampp \ htdocs \ myshop \ resources \ views \ front.blade.php)'. '$ countries' взяты из контроллера. Я использую рамки laravel. Но я сотрудничаю с vue.js –

+0

@mosestoh. Вы должны сделать 'countries' доступным в экземпляре vue, чтобы вы могли использовать его в DOM. Чем вы можете удалить '{}', и это может быть просто «v-for =» (страны, индекс) как страна ». – Saurabh

+0

То же самое. Кажется, это не работает. Мой код выше - вид. Он не является компонентом. 'v-for' работает только в компоненте. Не в представлении –