【问题标题】:Dynamic Template (Component) Probs to Class Binding Issue using Vue Js使用 Vue Js 的类绑定问题的动态模板(组件)问题
【发布时间】:2017-04-13 04:10:30
【问题描述】:

我尝试制作动态模板以按条件分配类。

我的模板是:

<template v-if="showTemplate" id="campaignBlock">
   <div v-class="@{{ block_class }}">
// <div v-class="{ block_class }">
     <img src="{{URL::asset('uploads/default.png')}}">
  </div>

模板调用:

<input type="button" @click="nb += 1" class="btn btn-default" value="Add New Section">
<div v-for="a in nb">
   <block v-if="nb == 4" block_class="col-md-3 col-sm-6 col-xs-6"></block>
   <block v-if="nb == 3" block_class="col-md-4 col-sm-6 col-xs-6"></block>
   <block v-if="nb == 2" block_class="col-md-6 col-sm-6 col-xs-6"></block>
   <block v-if="nb == 1" block_class="col-md-12 col-sm-6 col-xs-6"></block>
</div>

VueJs:

 Vue.component('block', {
   template: '#campaignBlock',
   props: ['block_class'],
   data: function () {
       return {
           n: 0,
           nb: 1,
           block_class: 'col-md-3 col-sm-6 col-xs-6'
        }
    }
});

在这里,如果我增加列,那么我会在模板中获得预期的道具值作为变量。

例如。 &lt;div v-class="{{ block_class }}"&gt;

但是,如果我尝试在“类”中分配,则只显示为文本。我也尝试过本地课程。我无法将pros(block_class) 传递给模板。

任何可能的方法来处理这个问题?

我正在使用 Laravel。

【问题讨论】:

  • 在您的问题中添加 HTML sn-ps inline 时,它​​们必须是 surrounded by backticks 以便可见。发帖前请务必通过预览功能阅读您的问题,以节省编辑的时间,并明确您的要求。此外,不要要求紧急或任何特殊处理 - 志愿者可能会在闲暇时解决您的问题。
  • 哦...抱歉,其实我只是在论坛上吃过饭...我忘记删除那个“单词”...谢谢您的注意!
  • 如果这个贴在别处,你会在你交叉发布的地方添加链接吗?最好一开始就这样做,这样帮助回答的人就不会意外重复您在其他地方获得的帮助。
  • 嗯...明白了!

标签: javascript html vue-component vue.js


【解决方案1】:

您可以使用dynamic styling 来执行此操作,

您可以将 props 中的对象哈希传递给组件,如下所示:

<input type="button" @click="nb += 1" class="btn btn-default" value="Add New Section">
<div v-for="a in nb">
   <block v-if="nb == 4" block_class="{'col-md-3': true, 'col-sm-6': true, 'col-xs-6': true"></block>
</div>

并在模板代码中:

<template v-if="showTemplate" id="campaignBlock">
   <div :class="block_class">
// <div :class="block_class">
     <img src="{{URL::asset('uploads/default.png')}}">
  </div>

【讨论】:

  • 在 vueJs 中删除元素是什么...?
  • @ShankarThiyagaraajan 你能详细说明一下吗,v-if 或 v-show 应该能够提供帮助。是否也与这个问题无关,您可以接受这个答案并提出另一个具有相关详细信息的问题。
  • 在jquery中,我们可以简单地使用,“jQuery(this).closest('.parent_class).remove();”但是在 vue js 中,我们如何执行类似的操作呢?
猜你喜欢
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 2012-12-01
  • 2021-06-27
  • 1970-01-01
  • 2017-07-07
相关资源
最近更新 更多