javascript - 我可以使用计算属性来有条件地设置表格行的样式吗?

标签 javascript vue.js

我正在呈现一个用户表,我希望整行仅针对当前用户突出显示。

我认为最简单的方法是通过计算属性,但我无法让它发挥作用。

在下面的代码中,注释是我的想法,但它不会呈现。我只想要当前用户“nathan”上的粉红色突出显示。

new Vue({
  el: '#app',
  data: {
    currentUser: 'nathan',
    users: [{
        name: "nathan",
        email: "nathan@gmail.com"
      },
      {
        name: "sally",
        email: "sally@gmail.com"
      },
      {
        name: "joe",
        email: "joe@gmail.com"
      }
    ],
  },
  computed: {
    styles: function(user) {
      let height = 100

      // something like this?
      // if(user === currentUser)
      if (user) {
        return {
          'background-color': 'pink'
        }
      }
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <table>
    <tr v-for="user in users">
      <td v-bind:style="styles">{{ user.name }}</td>
      <td v-bind:style="styles">{{ user.email }}</td>
    </tr>
  </table>
</div>

最佳答案

您不能将参数传递给计算属性,因此它不会填充 user 参数。

您可以创建一个类并将其添加到您的行中,具体取决于您想要的条件。

new Vue({
  el: '#app',
  data: {
    currentUser: 'nathan',
    users: [{
        name: "nathan",
        email: "nathan@gmail.com"
      },
      {
        name: "sally",
        email: "sally@gmail.com"
      },
      {
        name: "joe",
        email: "joe@gmail.com"
      }
    ],
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <table>
    <tr v-for="user in users" :class="{'current-user' : user.name === currentUser}">
      <td>{{ user.name }}</td>
      <td>{{ user.email }}</td>
    </tr>
  </table>
</div>

<style>
  tr.current-user {
    background-color: pink;
  }
</style>

关于javascript - 我可以使用计算属性来有条件地设置表格行的样式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56656033/

相关文章:

laravel - 上传文件数组 Laravel

javascript - 无法在 jQuery XML 对象中插入元素

javascript - HighCharts 柱形图中的工具提示帮助

javascript - 使用 Angularjs 将数组值设置为 Dropdown

javascript - Angular 对 Chrome 中的事件执行函数两次

javascript - 从 React-Select 组件获取所选值的最佳方法是什么?

javascript - 将选项设置为选定的

c# - 来自 Vue 应用程序的 Post 请求被 CORS 策略阻止

javascript - 在 Vuex 模块中进行继承的方法

javascript - 使用 Vuex 时 $router.push() not a function 错误