使用 Vue Js 的动态模板(组件)问题 Class 绑定问题

Dynamic Template (Component) Probs to Class Binding Issue using Vue Js

我尝试制作动态模板以根据条件分配 class。

我的模板是:

<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'
        }
    }
});

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

例如。 <div v-class="{{ block_class }}">

但是,如果我尝试在 "class" 中分配,则仅作为文本显示。我也试过原生 class 。我无法将 pros(block_class) 传递给模板。

有什么可能的方法来处理这个问题?

我正在使用 Laravel。

您可以使用 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>