Как создать динамическое имя класса?
li v-for='obj in objs'
| {{ obj.id }} {{ obj.title }}
div id="obj-{{ obj.id }} " style="float:right; color:red;"
Этот образец не работает! Мне нужно это имя класса, чтобы позже обновить div!!!
Как создать динамическое имя класса?
li v-for='obj in objs'
| {{ obj.id }} {{ obj.title }}
div id="obj-{{ obj.id }} " style="float:right; color:red;"
Этот образец не работает! Мне нужно это имя класса, чтобы позже обновить div!!!
Это помогло мне.
div :class="['obj-' + obj.id]" style="float:right; color:red;"
:class="[`obj-${obj.id}`]"
- person Fabian von Ellerts; 21.05.2019
Я не знаком с slim-lang
, но это то, что вам нужно, чтобы попасть внутрь шаблона Vue:
<div v-bind:class="['static-class', { 'active-class' : isActive }]">...</div>
В приведенном выше случае, если isActive
оценивается как true
, будет применен «активный класс». И «статический класс» всегда применяется в представлении. Это называется синтаксисом массива.
Ссылка: https://vuejs.org/guide/class-and-style.html#Array-Syntax
Вам нужно убедиться, что процессор slim-lang
выдает указанный выше HTML.
Теперь, переходя к настройке id
, вы не можете выполнять привязки атрибутов, используя синтаксис усов ({{...}}
). Вам нужно связать свой id
следующим образом:
<div v-bind:id="dynamicId"></div>
Ссылка: https://vuejs.org/guide/syntax.html#Attributes
Для нескольких классов:
:class="{'form-control':true,['box_'+index]:true}"
Ваш код действительно работает, я думаю, проблема в настройке данных vue. Я тоже люблю слим.
div#posting
li v-for='obj in objs'
| {{ obj.id }} {{ obj.title }}
div id="obj-{{ obj.id }}" class="obj-{{ obj.id }} " style="float:right; color:red;"
javascript:
var posting;
posting = new Vue({
el: '#posting',
data: {
objs:
[
{id: 1, title: 'xx'},
{id: 2, title: 'yy'},
]
}
});
<li v-for="color in colors" :class="[color.style]" class="list">{{color.name}}</li>
</ul>
https://codepen.io/mike-oxhuge/pen/mdOMybP
data: {
colors: [
{ id: "1", name: "blue text", style: "blue" },
{ id: "2", name: "red text", style: "red" },
{ id: "3", name: "green text", style: "green" }
],
},
Вот и у меня получилось. Динамическое имя для класса.
В vue динамическая классификация может быть добавлена несколькими способами.
:class="['prise', index === 0 ? 'first' : '', index === 1 ? 'second' : '']"
здесь,приз будет добавлен к классу что бы ни случилось,но только когда индекс будет равен 0,тогда первый будет добавлен к названию класса,а индекс равен 1,тогда второй будет добавлен к класс.
:class= "{ 'ultra-prise','first":index===0,'second':index===1}"
здесь, в случае объекта, ключ будет добавлен к классу только тогда, когда значение истинно.
поэтому для этого вопроса просто мы можем написать что-то вроде этого.
:class="[`obj-${obj.id}`]"