javascript - 有没有办法修改 Vue 组件内的 HTML 标签的内容?
问题描述
我是 Vue.js 的新手,还没有理解它。所以我想知道是否有一种方法可以让我的自定义 Vue 组件(UnorderedList)操纵我的自定义组件(UnorderedList)中的内容
如果我<p>
的组件中有这样的标签:
<UnorderedList :dashed="true">
<p>some sentence here</p>
<p>some sentence here</p>
</UnorderedList>
那么这就是页面呈现时的样子
some sentence here
some sentence here
我希望我的组件在这里做的是在每个标签之前添加一个“ -<p>
” ,这样当页面呈现时它应该看起来像这样:
- some sentence here
- some sentence here
这是我现在的 UnorderedList.vue
<template>
<ul >
<span v-if="dashed">-</span>
</ul>
</template>
<script>
export default {
name: 'UnorderedList',
props: {
dashed: {
type: Boolean,
default: false,
},
},
}
</script>
上面的代码显然不能按照我想要的方式工作。
所以,基本上我想在自定义组件(UnorderedList)内的所有内容之前添加一个“ - ”。
我怎样才能做到这一点 ?
如果这是一个愚蠢的问题,我提前道歉
解决方案
你可以使用 vue 过滤器
Vue.filter('dash', function (value) {
if (!value) return ''
value = `- ${value}`;
return value;
})
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
<div id="app">
{{message | dash}}
</div>
创建过滤器后,您可以在上面的 html 模板中使用它(message | dash)
推荐阅读
- macros - 测试元谓词映射表的目标扩展
- swift - 子类化 UIButton 给我错误
- firebase - 如何在另一个 Flutter 页面上更新 Firestore 数据
- python - 如何使用 Django 以表格形式发布好帖子
- sql - 如果 Field1 中的值为 null,则从 Field2 返回值,否则返回 String
- python - 在 Python 3.6 中安装和导入 tensorflow 时遇到问题
- reactjs - 对语义 UI 多搜索下拉问题做出反应
- html - 使用 Bootstrap 3 重新排序 div
- function - 在函数中使用未初始化的变量?
- android - 反应本机弹出