首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您可以在Vuejs中动态定义模板字符串中的属性吗?

您可以在Vuejs中动态定义模板字符串中的属性吗?
EN

Stack Overflow用户
提问于 2018-02-16 01:15:55
回答 3查看 2.1K关注 0票数 0

我可以传入一个模板字符串,也可以动态地传入一个属性,这样我就可以让它成为响应式的吗?在下面的示例中,我希望消息是响应式的,但我不想在数据选项上预定义它。

代码语言:javascript
复制
<div id="vue">
 <component :is="string && {template:string}"/>
</div>

new Vue({
    el:'#vue',
    data(){
    return {
    string:undefined,
   }
  },
  created(){
    //setTimeout to simulate ajax call
    setTimeout(()=> this.string = '<div><h1 v-for="n in 1">Hello!    </h1><input v-model="message" placeholder="edit me"><p>Message is: {{ message }}</p>    </div>', 1000)
  }
})

https://jsfiddle.net/kxtsvtro/5/

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-16 01:57:29

您可以使用与指定模板相同的方式指定data:只需将其插入到元件规范中即可。

代码语言:javascript
复制
new Vue({
  el: '#vue',
  data() {
    return {
      string: undefined,
      dataObj: undefined
    }
  },
  created() {
    //setTimeout to simulate ajax call
    setTimeout(() => {
      this.string = '<div><h1 v-for="n in 1">Hello!</h1><input v-model="message" placeholder="edit me"><p>Message is: {{ message }}</p></div>';
      this.dataObj = {
        message: 'initial'
      };
    }, 1000)
  }
})
代码语言:javascript
复制
<script src="//unpkg.com/vue@latest/dist/vue.js"></script>
<div id="vue">
  <component :is="string && {template:string, data: function() { return dataObj}}" />
</div>

票数 6
EN

Stack Overflow用户

发布于 2018-02-16 01:37:17

您可以使用Props,但我不确定这是否是最好的方法:)下面是一个示例:

代码语言:javascript
复制
new Vue({
	el:'#vue',
	data(){
  	return {
    	string:undefined,
      message:''
    }
  },
  created(){
  	//setTimeout to simulate ajax call
  	setTimeout(()=> this.string = '<div><h1 v-for="n in 1">Hello!</h1><input v-model="message" placeholder="edit me"><p>Message is: {{ message }}</p></div>', 1000)
  }
})
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.13/dist/vue.min.js"></script> 
<div id="vue">
  <component :is="string && {template:string, props:['message']}" :message="message"/>
</div>

票数 0
EN

Stack Overflow用户

发布于 2018-02-16 04:14:14

看起来您需要的是一个具有<slot>的组件,您可以将自定义组件转储到该组件中。如果您正在尝试编写组件,这可能是最简单的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48812822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档