首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vue-filter不适用于v-html。

vue-filter不适用于v-html。
EN

Stack Overflow用户
提问于 2017-11-03 09:28:36
回答 2查看 2.1K关注 0票数 2

这个问题没有什么解决办法,但对我没什么用。我正在使用一个名为vue-filter的包,我想使用nl2br过滤器。当我尝试像这样在我的html中使用它时

代码语言:javascript
复制
<p style="padding: 10px;font-size: 17px;"  v-html="$options.filters.nl2br(opDesc.description)"></p>

它给出了以下错误

代码语言:javascript
复制
TypeError: _vm.$options.filters.nl2br is not a function

下面是github链接https://github.com/wy-ei/vue-filter#nl2br

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-03 09:42:04

没问题。过滤器在v指令中不起作用。只适用于胡子插值和v-bind指令。

代之以使用计算属性:

代码语言:javascript
复制
<any-tag v-html="filtered" />

在组件中,使用如下内容:

代码语言:javascript
复制
computed: {
  filtered () {
    return this.nl2br(this.rawHtml)
  }
},
methods: {
  nl2br (source) {
    var filtered = //Filter logic here
    return filtered
  }
}
票数 1
EN

Stack Overflow用户

发布于 2018-04-16 15:26:02

您可以使用

  • v-html="$options.filters.FILTERNAME(args)"
  • :inner-html.prop="args | FILTERNAME"

见下面的演示。

代码语言:javascript
复制
Vue.filter('upper', function (value) {
    return value.toUpperCase();
})

new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  }
})
代码语言:javascript
复制
<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>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47092312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档