vue.js - Vue内联条件if?

标签 vue.js

我有以下代码:

    <div
        :id="'object' + object.id""
        :style="'position:absolute !important; width:' + object.width + '% !important; height:' + object.height + '% !important;'">
    <div

这工作正常并且呈现得很好。

我现在想在其中添加条件性内容。有点像

if object.background == 'solid'
 background-color: #ffffff;
endif

我尝试通过 Vue 内联 if 实现这一点,这给了我这个:

[object.background == 'solid' ? background-color: #ffffff important; : '']

但这只是给出了很多错误,这让我认为我处理这一切都是错误的。

要让我的风格具有简短的条件语句,正确的方法是什么?

最佳答案

我会使用返回样式对象的计算属性。

new Vue({
  el: "#app",
  data: {
    width: '200px',
    height: '200px',
    background: 'solid',
  },
  computed: {
    styleObj() {
      return {
        position: 'absolute !important',
        width: `${this.width} !important`,
        height: `${this.height} !important`,
        background: this.background === 'solid' ? 'green' : 'yellow',
      };
    },
  },
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script>
<div id="app">
    <div :style="styleObj">    
    </div>
</div>

关于vue.js - Vue内联条件if?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52506952/

相关文章:

performance - PhpStorm 在编辑 vue.js 文件时速度极慢

javascript - 如何根据 google api 文档的数据制作 vuex getter?

javascript - 使用 VUE-CLI 的 Node 模块

unit-testing - 如何在vue测试用例中传递screen.height和screen.width | Jest 框架

vue.js - 尝试在同一页面上显示未经身份验证和经过身份验证的内容时闪烁的内容

javascript - 如何在 Vue.js 中加载 emscripten 生成的模块以使用其功能?

javascript - 使用 Vue 添加/删除动态 DOM 元素

javascript - 当 v-for 与对象的属性一起使用时,将 v-model 与复选框一起使用

vue.js - 如何在 Laravel 8 中安装 Vue.js

javascript - 动态导入会分割代码但不会延迟加载