javascript - 为什么我的 Vue 组件没有绑定(bind)样式?

标签 javascript css vue.js vuejs2 vue-component

const EventLevelBoard = {
  name: "EventLevel",
  data: {
    levelStyle: {
      display: "block"
    },
    levelStyleinner: [
      { display: "block" },
      { display: "block" },
      { display: "block" }
    ]
  },
  template: `<ul class="eventlevel" v-bind:style="{data.levelStyle}">
    <li v-for="(item, idx) in eventlist" v-key="idx"  v-bind:style="levelStyleinner[idx]"><strong class="name">{{item.name}}</strong>
    <strong class="size">{{item.size}}</strong></li>
  </ul>`,
  props: {
    eventlist: {
      type: Array
    }
  }
};

开发控制台错误:

data.levelStyle is undefined

data.levelStyleinneris undefined

为什么它找不到这些数据属性?

最佳答案

因为 data 不是组件实例上的可用属性,即使它显然是在 选项 中定义的。

您可以直接访问数据,就像在这里所做的那样:

v-bind:style="levelStyleinner[idx]"

如果您确实想通过实例访问它,可以通过 $data 来实现:

v-bind:style="$data.levelStyle"

绑定(bind)周围不应有大括号{ }

关于javascript - 为什么我的 Vue 组件没有绑定(bind)样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61360403/

相关文章:

javascript - 淡入、淡出标签,然后在重复该过程之前更改文本

javascript - 如何在没有 Node Js bundler 的情况下通过 CDN 在 Django 中使用 Vue 3?

javascript - 在 Vue Js 应用程序中找不到元素

javascript - 如何停止执行 Angular 并向 Internet Explorer 用户显示消息?

javascript - 如何让所有功能在 jQuery 之后再次工作?

python - 如何将 Django 表单嵌入到我的 CSS 设计中?

vue.js - 长(非 AJAX)函数的加载指示器?

javascript - 从输入中删除最后一个字符时 Div 不会刷新

javascript - 用于查看带有叠加层的大图像( map )的 HTML/Javascript 选项

javascript - AngularJS 我应该在哪里设置或存储模块的配置