数据()中的Vuejs Html标签/属性

Posted

技术标签:

【中文标题】数据()中的Vuejs Html标签/属性【英文标题】:Vuejs Html tag / attribute in data() 【发布时间】:2022-01-14 03:32:22 【问题描述】:

我需要将 item.icon 拉为 html 数据而不是字符串,但我不知道该怎么做,有什么办法请帮帮我

我有这个代码:

    <div class="box my-5" v-for="(item, index) in items" :key="index" >
        <div class="innerBox">
            <router-link to="/ninethPage">
                <div  class="card Fcard d-flex  flex-row justify-content-center align-items-center" style="padding: 1rem 2rem !important">
                    <span v-html="icon"> </span>
                    <p>item.title</p>
                </div>
            </router-link>
            <router-view></router-view>
        </div>
    </div>
</div>


export default 
        el: '#app',
        data() 
            return 
                items: [
                    title: 'android', icon: <i class="fab fa-android mx-3 img-fluid" style="font-size: 1.5rem;" ></i>,
                    title: 'ios', icon: <i class="fab fa-apple mx-3 img-fluid" style="font-size: 1.5rem;" ></i>
                ]
            
        ,
        components:
            Header
        
    
`

【问题讨论】:

:v-html="item.icon" ? 这行不通人&lt;div class="card Fcard d-flex flex-row justify-content-center align-items-center" style="padding: 1rem 2rem !important"&gt; &lt;span :v-html="item.icon"&gt; &lt;/span&gt; &lt;p&gt;item.title&lt;/p&gt; &lt;/div&gt; return items: [ title: 'Android', icon: '&lt;i class="fab fa-android mx-3 img-fluid" style="font-size: 1.5rem;" &gt;&lt;/i&gt;', title: 'IOS', icon: '&lt;i class="fab fa-apple mx-3 img-fluid" style="font-size: 1.5rem;" &gt;&lt;/i&gt;' ] 项目中的所有图标都应为字符串格式:icon: "&lt;i&gt;my-icon&lt;/i&gt;" 我已经这样做了,没有错误但图标不显示items: [ title: 'Android', icon: '&lt;i class="fab fa-android mx-3 img-fluid" style="font-size: 1.5rem;" &gt;&lt;/i&gt;', title: 'IOS', icon: '&lt;i class="fab fa-apple mx-3 img-fluid" style="font-size: 1.5rem;" &gt;&lt;/i&gt;' ] 检查开发工具中的元素,检查&lt;i&gt;...&lt;/i&gt;是否存在于span 【参考方案1】:

icon: &lt;i class=... 是创建元素的 JSX 语法,需要与渲染函数而不是模板一起使用。它应该是一个字符串,icon: '&lt;i class=...'

没有icon属性,应该是&lt;span v-html="item.icon"&gt;

指定整个图标元素是不切实际的。如果只有&lt;i&gt; 类不同,则可以是icon: 'fa-android',并与:

<i class="class="fab mx-3 img-fluid" style="font-size: 1.5rem" :class="item.icon"/>

【讨论】:

以上是关于数据()中的Vuejs Html标签/属性的主要内容,如果未能解决你的问题,请参考以下文章

如何忽略tinymce中的html标签| Vuejs 和 Laravel

如何忽略 VueJS 中的自定义 html 标签?

Vue js将HTML按钮名称属性作为PROPS传递

vuejs v-html图像标签不解析src

未选中时,具有对象作为绑定到数组属性的值的 VueJS 复选框不会脱离数组

无法将文本绑定到 VueJS 模板中的 href 属性