vuejs filter中输出html

作者: zengde 分类: 技术相关 发布时间: 2018-11-10 09:14

解决方法

  • 使用全局方法
  • 使用 computed 属性
  • 使用 $options.filters
  • :inner-html.prop

使用全局方法

put your highlight into methods, and v-html="highlight(option.title)"

也可以在 Vue 上定义全局方法:

Vue.prototype.highlight= function (sTitle) {
  // to do
};

然后所有组件上都可以直接用这个方法了:

v-html="highlight(option.title)"

使用 computed 属性

  • What if I have a filter that outputs HTML? Do I have to use a computed property or is there a better way?
  • Computed properties are the best way. You get automatic caching.

当然,可以使用计算属性 computed,返回原生 htmlv-html 即可。

使用 $options.filters

You can use $options.filters

v-html="$options.filters.highlight(option.title)".

这个方式在文档中并没有说明,但是这也是可靠的方法。

You can safely rely on that: $options are the options passed to the Vue constructor when creating a vm (so any component or new Vue). From that point on is just javascript

使用 :inner-html.prop

<div :inner-html.prop="props.row.status | hcStatusFormat"></div>

https://github.com/vuejs/vue/issues/6056
https://link.jianshu.com/?t=https://github.com/vuejs/vue/issues/4352