【问题标题】:How to use chunk Vue Js with bootsrap grid system?如何将块 Vue Js 与引导网格系统一起使用?
【发布时间】:2020-09-22 19:14:03
【问题描述】:

这里是代码

已经阅读过类似的其他问题但不明白

我正在尝试每 2 个项目添加引导行

Vue.component('col-md-6', {
  props: ['data'],

  template: '<div class="col-md-6"><div class="form-group"> <label :for=" data.inid "> {{ data.label }}  </label><input type=""  :disabled="data.dsbl" class="form-control" :id=" data.inid " :placeholder=" data.label "> </div> </div>',

})
var inputgen = new Vue({
  el: "#container",
  data: {
    inputs: [{
        id: 0,
        type: '',
        inid: 'no',
        dsbl: true,
        label: 'Ariza №'
      },
      {
        id: 1,
        type: '',
        inid: 'rw',
        status: "",
        label: 'Asosiy menu'
      },
      {
        id: 2,
        type: '',
        inid: 'wer',
        status: "",
        label: 'Asosiy menu'
      },
      {
        id: 3,
        type: '',
        inid: 'w4er',
        status: "",
        label: 'Asosiy menu'
      },
    ]



  },
  
})
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">


<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div class="row" id="container" >
  <col-md-6 v-for="item in inputs" v-bind:data="item" v-bind:key="item.id"></col-md-6>
</div>

【问题讨论】:

  • 您能否编辑您的 sn-p 以便它可以运行而不会引发错误?将有助于了解您目前拥有的东西。
  • 完成了,你可以看看

标签: javascript bootstrap-4 vuejs2 vue-component


【解决方案1】:

如果我理解正确,您希望它每 2 个项目生成一个新的 &lt;div class="row"&gt;。 这样你就可以自动实现这个(简化的)结构。

<row>
  <col></col>
  <col></col>
</row>
<row>
  <col></col>
  <col></col>
</row>

要做到这一点,您可以使用计算属性将原始数组分块成一个成对的数组。有很多方法可以将数组分块,我个人只使用了first result from google,它很有效。

将数组分块后,您会得到类似的回报。

[ [object, object], [object, object] ]

Vue.component('col-md-6', {
  props: ['data'],

  template: '<div class="col-md-6"><div class="form-group"> <label :for=" data.inid "> {{ data.label }}  </label><input type=""  :disabled="data.dsbl" class="form-control" :id=" data.inid " :placeholder=" data.label "> </div> </div>',

})
var inputgen = new Vue({
  el: "#container",
  computed: {
    chunkedInputs() {
      return this.chunkArray(this.inputs, 2)
    }
  },
  methods: {
    chunkArray(myArray, chunk_size){
      var index = 0;
      var arrayLength = myArray.length;
      var tempArray = [];

      for (index = 0; index < arrayLength; index += chunk_size) {
          myChunk = myArray.slice(index, index+chunk_size);
          tempArray.push(myChunk);
      }

      return tempArray;
    }
  },
  data: {
    inputs: [{
        id: 0,
        type: '',
        inid: 'no',
        dsbl: true,
        label: 'Ariza №'
      },
      {
        id: 1,
        type: '',
        inid: 'rw',
        status: "",
        label: 'Asosiy menu'
      },
      {
        id: 2,
        type: '',
        inid: 'wer',
        status: "",
        label: 'Asosiy menu'
      },
      {
        id: 3,
        type: '',
        inid: 'w4er',
        status: "",
        label: 'Asosiy menu'
      },
    ]
  }
})
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="container">
  <div class="row" v-for="chunk in chunkedInputs">
    <col-md-6 v-for="item in chunk" v-bind:data="item" v-bind:key="item.id"></col-md-6>
  </div>
</div>

【讨论】:

  • 非常感谢!我刚开始使用 vue js,到目前为止对我来说很难
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 2015-10-06
  • 2016-03-11
  • 1970-01-01
相关资源
最近更新 更多