在VueJs中将代码隐藏中的元素渲染为v-html

时间:2018-04-11 22:16:09

标签: javascript html typescript vue.js vue-component

如何才能从代码隐藏中获取值和html才能有效显示?

示例:

html: <div id="app" v-html="html"></div>

js: new Vue({
      el: '#app',
      data: {
      html: '<h1>Hello {{text}}</h1>',
      text: 'world'
      }
    })

https://jsfiddle.net/Lct8uz4o/214/

尝试使用v-text,v-html,{{..}},{{{..}}},但没有任何效果。

这只是一个例子,我必须显示具有不同html语法的各种div元素,每个元素都包含要显示的值。你能帮忙吗?

以下是真实问题的代码:

<tbody>
  <tr v-if="!isLoading" v-for="(f, index) in formatted">
    <td :class="c.ClassName" v-for="(c, index) in columnsDisplay" v-html="c.Description">
    </td>
  </tr>
</tbody>

columnsDisplay.push( 
{
   FieldName: "StateCode",
   ClassName: "tracking-state",
   Description: "{{f.StateCode}}"
},
{
   FieldName: "EnrollmentDate",
   ClassName: "tracking-enrolled",
   Description: "<span>{{f.EnrollmentDate}}</span><span class='tracking-cell-subtitle'> {{ f.TimeSinceEnrollment }}</span>"
},
{
   FieldName: "LastActivity",
   ClassName: "tracking-activity",
   Description: "<span>{{f.LastActivity}}</span><span class='tracking-cell-subtitle'>{{f.TimeSinceLastActivity}}</span></td>"
});

1 个答案:

答案 0 :(得分:2)

考虑computed property

&#13;
&#13;
bower
&#13;
new Vue({
  el: '#app',
  data: {
    text: 'world'
  },
  computed: {
  	html: function() {
    	return `<h1>Hello ${ this.text }</h1>`;
    }
  }
})
&#13;
&#13;
&#13;

我无法找到表明最佳做法的来源,所以也许您也可以使用templates或其他完整的内容!