You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用vue3-runtime-template出现渲染属性未在实例上定义错误如何解决

问题排查与解决方案

报错原因

vue3-runtime-template 渲染的运行时模板拥有独立的上下文作用域,父组件的data、计算属性、方法默认不会自动注入到该作用域内,你在模板字符串 <div>{{ getConvertedText }}</div> 中访问的getConvertedText没有被传入运行时模板的上下文,所以会抛出未定义的错误。

修复方案

方案1:主动注入需要的上下文变量

给VRuntimeTemplate组件绑定你需要在运行时模板中使用的所有变量即可,修改模板部分代码:

<template>
<v-container>
  <v-runtime-template :template="text" v-bind="{ getConvertedText }"></v-runtime-template>
</v-container>
</template>

如果后续运行时模板里用到了其他父组件的属性、方法,都可以放到v-bind的对象里统一传入。

方案2:直接拼接模板字符串

如果你的运行时模板不需要响应父组件的变量变化,可以直接把计算属性的返回值拼入模板字符串,不需要在模板里绑定变量:

<script>
import xmlStr from '../assets/sample.xml'
import xslStr from '../assets/sample.xsl'
import VRuntimeTemplate from "vue3-runtime-template"
export default {
  name: 'Edition',

  components: {
    VRuntimeTemplate,
  },
  computed: {
    text() {
      return `<div>${this.getConvertedText}</div>`
    },
    getConvertedText() {
      var xml = new DOMParser().parseFromString(xmlStr, 'text/xml')
      var xsl = new DOMParser().parseFromString(xslStr, 'text/xml')
      var xsltProcessor = new XSLTProcessor()
      xsltProcessor.importStylesheet(xsl)
      return xsltProcessor.transformToDocument(xml).documentElement.outerHTML
    },
  },
}
</script>

内容的提问来源于stack exchange,提问作者Takatomo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:54:03