Я использую v- html для удаления тегов html, но все еще показываю обработанные html. Проблема в том, что я хочу показать только 200 символов. Я могу создавать усеченные скрипты, но v- html, похоже, не принимает фильтры. Как мне этого добиться?
Например:
// This
<div class="excerpt" v-html="body_html"></div>
// Into this
<div class="excerpt" v-html="body_html | truncate(200)"></div>
Я попытался создать фильтр стриптага и обрезать + убрать теги обычного <p>
, но он не обработал html. Другими словами, я получил HTML обратно без жирного, курсива и т. Д. c
Например, вот так: (не мой предпочтительный метод, если вы не можете найти способ улучшить его) так что я все еще могу получить HTML.
<div>{{strippedContent | truncate(200)}}</div>
Vue.filter("truncate", function(value, length) {
if (!value) return "";
value = value.toString();
if (value.length > length) {
return value.substring(0, length) + "...";
} else {
return value;
}
});
export default {
data() {
return {
body_html: this.post.body_html
};
},
computed: {
strippedContent() {
let regex = /(<([^>]+)>)/gi;
return this.body_html.replace(regex, "");
}
}
};