vue-filter 不适用于 v-html
vue-filter doesn't work with v-html
这个问题几乎没有解决方案,但对我来说没有任何效果。我正在使用一个名为 vue-filter
的包,我想使用 nl2br
过滤器。当我尝试像这样在 html 中使用它时
<p style="padding: 10px;font-size: 17px;" v-html="$options.filters.nl2br(opDesc.description)"></p>
它给了我以下错误
TypeError: _vm.$options.filters.nl2br is not a function
这是包裹githublinkhttps://github.com/wy-ei/vue-filter#nl2br
没关系。过滤器在 v-html 指令中不起作用。仅在小胡子插值和 v-bind 指令中。
改为使用计算 属性:
<any-tag v-html="filtered" />
在组件中,使用这样的东西:
computed: {
filtered () {
return this.nl2br(this.rawHtml)
}
},
methods: {
nl2br (source) {
var filtered = //Filter logic here
return filtered
}
}
您可以使用
v-html="$options.filters.FILTERNAME(args)"
或
:inner-html.prop="args | FILTERNAME"
.
请参阅下面的演示。
Vue.filter('upper', function (value) {
return value.toUpperCase();
})
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
<script src="https://unpkg.com/vue"></script>
<div id="app">
<p v-html="$options.filters.upper(message)"></p>
<p :inner-html.prop="message | upper"></p>
</div>
这个问题几乎没有解决方案,但对我来说没有任何效果。我正在使用一个名为 vue-filter
的包,我想使用 nl2br
过滤器。当我尝试像这样在 html 中使用它时
<p style="padding: 10px;font-size: 17px;" v-html="$options.filters.nl2br(opDesc.description)"></p>
它给了我以下错误
TypeError: _vm.$options.filters.nl2br is not a function
这是包裹githublinkhttps://github.com/wy-ei/vue-filter#nl2br
没关系。过滤器在 v-html 指令中不起作用。仅在小胡子插值和 v-bind 指令中。
改为使用计算 属性:
<any-tag v-html="filtered" />
在组件中,使用这样的东西:
computed: {
filtered () {
return this.nl2br(this.rawHtml)
}
},
methods: {
nl2br (source) {
var filtered = //Filter logic here
return filtered
}
}
您可以使用
v-html="$options.filters.FILTERNAME(args)"
或:inner-html.prop="args | FILTERNAME"
.
请参阅下面的演示。
Vue.filter('upper', function (value) {
return value.toUpperCase();
})
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
<script src="https://unpkg.com/vue"></script>
<div id="app">
<p v-html="$options.filters.upper(message)"></p>
<p :inner-html.prop="message | upper"></p>
</div>