通过支撑2层儿童?

时间:2018-01-02 13:59:49

标签: vue.js vuejs2

我有一个组件,我传入一个id作为道具:

<comments myId="1"></comments>

在评论部分我把它作为道具:

props: [
    'myId',
],

在这个评论组件模板中,我有另一个组件

<btn id="{{ this.myId }}"></btn>

但我似乎无法通过道具 - 我得到了错误:

Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div id="{{ val }}">, use <div :id="val">.

我不知道为什么我需要使用:,我很高兴将id作为字符串传递。

如何解决错误,并传递道具?

1 个答案:

答案 0 :(得分:1)

你可以写下来

<btn :id="myId"></btn>

将道具传递给组件。

传递道具的语法是我们可以使用绑定将变量绑定到组件,我们不需要在那里插值。

Vue.component('child', {
  template: '#child', 
  props: ['id']
});

Vue.component('childchild', {
  template: '#childchild', 
  props: ['id']
});

new Vue({
  el: '#app',
  data: {
  },
  created: function() {
   
  },
  methods: {
     
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.3/vue.js"></script>

<div id="app">  
  <child id="1000"></child>  
</div>

<template id="child">
  <childchild :id="id"></childchild>
</template>

<template id="childchild">
 <h1>{{ id }}</h1>
</template>