javascript - 如何在 Vue.js 中向 HTML 代码添加条件?

标签 javascript html handlebars.js vue.js

我有以下模板代码:

<template v-for="(index, message) in messages">
  {literal}
  <div class="message_block {{message.message_type}}" v-if="message.message_type">
    <div class="message">
      {{message.message}}
    </div>
  </div>
  {/literal}
</template>

我想做的是显示一行 - <div class="message_block"... ,如果message.message_type不等于null ,或者不是undefined .

这是我得到的数据:

var demo = new Vue({
  el: '#testblock',
  data: {
    messages: [
      { message: 'Foo', message_type: "left" },
      { message: 'Bar', message_type: null }
    ]
  }
})

我正在尝试添加包装器 <div class="message_block"> ,如果 message_type不等于null .

最佳答案

根据您上面的评论:

@LinusBorg No, I want the "Bar" to show regardless of the value of message_type, it's just if message_type is null, I don't want a wrapper around it.

除了复制内部 div 之外没有其他方法。

<template v-for="(index, message) in messages">
  {literal}
  <div class="message_block {{message.message_type}}" v-if="message.message_type">
    <div class="message">
      {{message.message}}
    </div>
  </div>

  <div v-if="!message.message_type" class="message">
    {{message.message}}
  </div>
  {/literal}
</template>

如果你不想重复它,你可以将它定义为一个小组件来重复使用它,或者使用 partial .

关于javascript - 如何在 Vue.js 中向 HTML 代码添加条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38292085/

相关文章:

javascript - 迭代并比较两个对象数组的属性

javascript - 您可以使用 Handlebars 助手去除字符吗?

JavaScript 'keyup' 和 'keydown' 事件监听器只触发一次

javascript - javascript 中的对象数组未按预期返回

php - 解析 PHP 的基本文本输出

javascript - 我的 Wordpress 网站页脚上的白色栏

html - 覆盖 Bootstrap 样式

javascript - IndexedDB 主线程和 WebWorker 事件监听器

javascript - 使用 Jquery if 和 else 函数禁用按钮

javascript - 渲染嵌套模型 Handlebars ?