Vue组件没有绑定样式

时间:2017-07-06 10:14:49

标签: javascript vuejs2

嗨,我是Vue的新人,所以也许我错过了一些明显的东西。 我有一个组件SliderItem我想设置顶部位置,所以我为数据添加了一个属性:

data () {
    return {
    /*more data*/
     topSliderText: '120px'
    }
}

这是Vue实例

import { Slider } from 'vue-easy-slider'
var SliderItem = require('./components/easy-slider-item.vue');

new Vue( {
  el: '#slider',
  data () {
    return {
      list: [
        { background: "url('/images/sliders/be.png')", width: '100%', height: '100%' },
      ]
    }
  },
  components: {
    Slider,
    SliderItem
    },
    mounted() {

    }
} );

然后在视图中

<div class="" id="slider">
<slider animation="fade">
  <slider-item v-bind:style="{top: topSliderText}" v-for="(i, index) in list" :key="index">
    <div :style="i">
        <div class="slider-text">
             <p style="font-size: 5rem; text-align: center;">Page @{{ index +1 }}</p>
        </div>

    </div>
  </slider-item>
</slider>

但是没有用,SliderItem没有风格,我在控制台上发出警告

  

vue-slider.js:561 [Vue warn]:属性或方法“topSliderText”未在实例上定义,但在渲染期间引用。确保在数据选项中声明反应数据属性。

     

vue-slider.js:562 [Vue warn]:计算属性“topSliderText”已在数据中定义

但是当我使用Vue chrome扩展程序来查看组件时,它具有如此属性......我不知道我做错了什么......

提前致谢。

1 个答案:

答案 0 :(得分:1)

您在topSliderText组件中定义了SliderItem,但在父组件中使用了它。

这就是你得到vue [warn]的原因,因为vue在父组件的属性中搜索topSliderText

因此,将topSliderText定义为父组件本身的数据属性