【问题标题】:Rendering elements from code-behind to v-html in VueJs在 VueJs 中将元素从代码隐藏渲染到 v-html
【发布时间】:2018-09-21 22:27:31
【问题描述】:

如何从代码隐藏中获取值和 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>"
});

【问题讨论】:

  • 您应该发布代码示例的链接,而不仅仅是打印代码示例的链接。
  • 刚刚发布了链接。请查看并感谢您的反馈。 @YagoAzedias

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


【解决方案1】:

考虑computed property

new Vue({
  el: '#app',
  data: {
    text: 'world'
  },
  computed: {
  	html: function() {
    	return `<h1>Hello ${ this.text }</h1>`;
    }
  }
})
<script src="https://unpkg.com/vue"></script>

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

我找不到表明最佳做法的来源,所以也许您也可以使用 templates,或者完全使用其他东西!

【讨论】:

  • 是的,在这个例子中有效,但在我的情况下,每个字段都有不同的值要显示 - columnsDisplay .push( { FieldName: "StateCode", ClassName: "tracking-state", Description: "{{f.StateCode}}" }, { FieldName: "EnrollmentDate", ClassName: "tracking-enrolled", Description: "{{f.EnrollmentDate}} {{ f.TimeSinceEnrollment }}" });
  • @SindhuG 嗯,我不相信如果您使用计算方法而不是将值插入字符串,它不会起作用。例如:描述:{{ computedDescription }}。但是我没有尝试过,所以我无法证明......你呢? :)
  • 另外,免责声明:不是 Vue.js 专家 -->
猜你喜欢
  • 2019-12-19
  • 1970-01-01
  • 2021-04-05
  • 2019-05-09
  • 2014-08-23
  • 2022-11-03
  • 2012-09-21
  • 2020-05-04
  • 1970-01-01
相关资源
最近更新 更多