我正在做一个搜索功能,可以过滤掉我拥有的某些卡,因此,如果我开始输入大象,那么它只会显示大象卡。
所以我设法使它工作,但是我想使其更好一点,并且我希望对每张卡片进行一些样式设置,甚至使用字体很棒的图标,但是我不知道该怎么做。
所以在我的主要html文件中,我使用v-for和v-bind从js文件中获取卡片。
卡代码:
class Custcard {constructor(header, info, img, sign) {
this.header = header;
this.info = info;
this.img = img;
this.sign = sign;
}}
new Custcard(
'title',
'info',
'imgurl',
'sign,
可以,但是因为每张卡都有些不同,所以我正在尝试执行以下操作:
new Custcard(
'<h1>title</h1>',
'<span class="font awesome icon"></span>info',
'imgurl',
'sign,
有没有办法做到这一点?
谢谢。
答案 0 :(得分:0)
我会使用v-html
指令。
最终看起来像这样:
<div v-for="(card, idx) in cards" v-bind:key="idx" class="card">
<div class="card-header" v-html="card.header"></div>
<div class="card-info" v-html="card.info"></div>
{{ card.img }}
{{ card.sign }}
</div>
或有影响的东西。
您可以找到有关v-html on alligator.io
的更多信息答案 1 :(得分:0)
这是如何使用Vue组件的主要示例。我在这里制作了一个Codepen示例:https://codepen.io/bergur/pen/byYKwd,其解释如下。
首先定义组件。您正在描述卡片,因此我们将其称为“卡片”组件,它应该具有一些适当的层次,例如标题,信息和标志。
Vue.component('card', {
props: ['header', 'info', 'sign'],
computed: {
icon() {
return 'fas fa-'+this.sign
}
},
template: `
<div>
<i :class="icon"></i> <b>{{ header }}</b> - <em>{{ info }}</em>
</div>`
})
然后我们定义vue应用。
new Vue({
el: '#demo',
data() {
return {
title: 'All the cards',
cardList: [
{
header: 'Angry guy',
info: 'The angry guy is always mad',
sign: 'angry'
},
{
header: 'Smiley guy',
info: 'The smiley guy is always really happy',
sign: 'smile'
}
]
}
},
})
现在我们只需要渲染应用程序。
<div id="demo">
<h1>{{ title }}</h1>
<card v-for="card in cardList" :header="card.header" :info="card.info" :sign="card.sign" />
</div>
要制作过滤器,最好的方法是