Vue:访问组件对象属性

时间:2017-09-29 13:47:32

标签: javascript web vue.js vuejs2 vue-component

我正在尝试在元素中使用语句:

v-if="currentstep < maxStep"

maxStep应该从我的默认导出

中列出的组件数量中获取
  export default {
    name: 'step',
    data () {
      return {
        maxStep: 8,
        currentstep: 0
      }
    },
    components: {
      ConfigPublicador,
      ConfigServico,
      ModeloReceita,
      Integracoes,
      ConfigTema,
      ConfigApp,
      ConfigExtras,
      Assets,
      Revisao
    }
  }

这样的东西
maxStep = components.length

任何想法? 感谢

1 个答案:

答案 0 :(得分:1)

这绝对是代码味道。但是,您可以通过Object.keys(this.$options.components).length获得该值。

以下是一个例子:

const Foo = {
  template: '<div></div>',
}

new Vue({
  el: '#app',
  components: { Foo },
  data() {
    return {
      count: 0,
    }
  },
  created() {
    this.count = Object.keys(this.$options.components).length;
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.js"></script>
<div id="app">
  <div v-if="count > 0">
    There is at least one component
  </div>
</div>