Vuejs v-модель экранирует автоматически html-сущности - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь отобразить некоторые html-объекты в текстовом вводе формы, но v-model кажется, что их не хватает.

Что мне нужно написать, чтобы заставить v-model отображать html-объекты правильно?

мой пример кода

<el-input v-model="data" readonly="readonly"></el-input>

Я знаю о v-html, но я предпочитаю продолжать использовать v-model из-за автоматической двусторонней привязки.

UPDATE

Возможно, я выразил себя неправильно, я хочу отобразить символ, а не html-сущность, поэтому вместо 49.42&#8377; мне нужно отобразить 49.42 ₹.

1 Ответ

0 голосов
/ 14 ноября 2018

Если вы моделируете компьютерную систему, которая интерпретирует сущности HTML, я думаю, вы получите желаемый эффект.Вы можете ввести значения сущностей, и они будут интерпретироваться правильно.Однако это может преждевременно превратиться в другой характер;Вы должны набрать # 8377;а затем вернитесь и вставьте &.

new Vue({
  el: '#app',
  data: {
    a: '49.42&#8377;'
  },
  computed: {
    asText: {
      get() {
        return this.toText(this.a);
      },
      set(newValue) {
        this.a = newValue;
      }
    }
  },
  methods: {
    toText(html) {
      const div = document.createElement('div');

      div.innerHTML = html;
      return div.textContent;
    }
  }
})
<link href="//unpkg.com/element-ui@1.0.0-rc.3/lib/theme-default/index.css" rel="stylesheet"/>
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui/lib/index.js"></script>

<div id="app">
  <el-input v-model="asText"></el-input>
  {{a}}
  <div v-html="a"></div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...