Vue-Modell nicht aktualisieren

Wenn ich versuche zu aktualisieren meine benutzerdefinierte text-area-Komponente die Modell-Daten this.message='<span id="foo">bar</span> text und html wird nicht angezeigt, in der htmltextarea-tag, wie es sollte, aber ich kann sehen, dass die Updates angewendet, die in der Vue dev Konsole. Ich habe auch versucht den Wechsel zu einem Objekt statt als string zu haben und mit Vue.set, aber das funktioniert auch nicht.

Irgendwelche Vorschläge, wie man dieses Problem beheben?

Dem Ziel, mit der htmlTextArea Komponente ist, erhalten die Benutzer text aus dem htmlTextArea-tag (das funktioniert), Bearbeiten Sie diesen text, und binden Sie es zurück zu der textarea, aber mit HTML-Code in es.

Benutzerdefinierte text-area-Komponente:

<template>
  <div contenteditable="true" @input="updateHTML" class="textareaRoot"></div>
</template>
<script>
export default {
  //Custom textarea 
  name: 'htmlTextArea',
  props:['value'],
  mounted: function () {
      this.$el.innerHTML = this.value;
  },
  methods: {
      updateHTML: function(e) {
          this.$emit('input', e.target.innerHTML);
      }
  }
}
</script>

Andere Komponente:

<template>
...
<htmlTextArea id="textarea" v-model="message"></htmlTextArea>
...
</template>
<script>
      data: {
        return {
          message: 'something'//this works
        }
      }
     ...
     methods: {
      changeText() {
        this.message='<span id="foo">bar</span>'//this does not
      }
     },
     components: {
         htmlTextArea
     }
</script>
InformationsquelleAutor orangeMint | 2018-04-13
Schreibe einen Kommentar