如何将数据传递给子组件?

时间:2016-10-28 18:52:53

标签: javascript vue.js

我正在学习vue.js,我的问题的答案在documentation for dynamic props。然而,我没有在实践中为我的数据结构工作。

我的目的是让自定义组件<cell>提供来自Vue实例的数据:

Vue.component('cell', {
  props: cell,
  template: '<div>day is {{ cell.name }}</div>'
})

new Vue({
  el: '#container',
  data: {
    "week": {
      "today": {
        "name": "Monday"
      },
      "tomorrow": {
        "name": "Tuesday"
      }
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.js"></script>

<div id="container">
  <cell v-bind:cell="week.today"></cell>
  <cell v-bind:cell="week.tomorrow"></cell>
</div>

(此代码段根本不运行,不确定是否支持vue.js.我也有a JSFiddle to test on

预期结果是

<div>day is Monday</div>
<div>day is Tuesday</div>

输出是空的,所以我认为我的代码存在根本性的错误。它是什么?

1 个答案:

答案 0 :(得分:1)

props必须是数组或对象,所以基本上是:

props: ['cell']

props: {
   cell: {
     // options
   }
}

props: cell

我在这里为你解决了小提琴:

https://jsfiddle.net/11cj0Lx6/3/