How to remove the whole column in vue table?











up vote
3
down vote

favorite












I have a problem in removing the whole column and its corresponding row in vue-table.
Here is my code.



<b-table :fields="fields" :items="data">

<template slot="action" slot-scope="data" v-if="authorize = 1">

</template>

</b-table>



export default{
data(){
authorize: 0,
data: ,
fields: [
{key: 'id', label: '#'},
{key: 'name', label: 'Name'},
{key: 'action', label: 'Action'}
],
}
}


This is the original table:



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | Delete |
| 2 | Chicharon Ni Mang Juan | Delete |
| 3 | Lumanog | Delete |


In this case, When I use v-if inside the <template> it only removes the data in the column.



This is the result of the code above



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | |
| 2 | Chicharon Ni Mang Juan | |
| 3 | Lumanog | |


What I want is to remove the whole column itself like this.



| # | Name                   |
------------------------------
| 1 | John Doe |
| 2 | Chicharon Ni Mang Juan |
| 3 | Lumanog |


Regards,










share|improve this question
























  • you should use v-for for easier manipulation of html elements.
    – Capt. Teemo
    Nov 8 at 10:32















up vote
3
down vote

favorite












I have a problem in removing the whole column and its corresponding row in vue-table.
Here is my code.



<b-table :fields="fields" :items="data">

<template slot="action" slot-scope="data" v-if="authorize = 1">

</template>

</b-table>



export default{
data(){
authorize: 0,
data: ,
fields: [
{key: 'id', label: '#'},
{key: 'name', label: 'Name'},
{key: 'action', label: 'Action'}
],
}
}


This is the original table:



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | Delete |
| 2 | Chicharon Ni Mang Juan | Delete |
| 3 | Lumanog | Delete |


In this case, When I use v-if inside the <template> it only removes the data in the column.



This is the result of the code above



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | |
| 2 | Chicharon Ni Mang Juan | |
| 3 | Lumanog | |


What I want is to remove the whole column itself like this.



| # | Name                   |
------------------------------
| 1 | John Doe |
| 2 | Chicharon Ni Mang Juan |
| 3 | Lumanog |


Regards,










share|improve this question
























  • you should use v-for for easier manipulation of html elements.
    – Capt. Teemo
    Nov 8 at 10:32













up vote
3
down vote

favorite









up vote
3
down vote

favorite











I have a problem in removing the whole column and its corresponding row in vue-table.
Here is my code.



<b-table :fields="fields" :items="data">

<template slot="action" slot-scope="data" v-if="authorize = 1">

</template>

</b-table>



export default{
data(){
authorize: 0,
data: ,
fields: [
{key: 'id', label: '#'},
{key: 'name', label: 'Name'},
{key: 'action', label: 'Action'}
],
}
}


This is the original table:



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | Delete |
| 2 | Chicharon Ni Mang Juan | Delete |
| 3 | Lumanog | Delete |


In this case, When I use v-if inside the <template> it only removes the data in the column.



This is the result of the code above



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | |
| 2 | Chicharon Ni Mang Juan | |
| 3 | Lumanog | |


What I want is to remove the whole column itself like this.



| # | Name                   |
------------------------------
| 1 | John Doe |
| 2 | Chicharon Ni Mang Juan |
| 3 | Lumanog |


Regards,










share|improve this question















I have a problem in removing the whole column and its corresponding row in vue-table.
Here is my code.



<b-table :fields="fields" :items="data">

<template slot="action" slot-scope="data" v-if="authorize = 1">

</template>

</b-table>



export default{
data(){
authorize: 0,
data: ,
fields: [
{key: 'id', label: '#'},
{key: 'name', label: 'Name'},
{key: 'action', label: 'Action'}
],
}
}


This is the original table:



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | Delete |
| 2 | Chicharon Ni Mang Juan | Delete |
| 3 | Lumanog | Delete |


In this case, When I use v-if inside the <template> it only removes the data in the column.



This is the result of the code above



| # | Name                    | Action |
----------------------------------------
| 1 | John Doe | |
| 2 | Chicharon Ni Mang Juan | |
| 3 | Lumanog | |


What I want is to remove the whole column itself like this.



| # | Name                   |
------------------------------
| 1 | John Doe |
| 2 | Chicharon Ni Mang Juan |
| 3 | Lumanog |


Regards,







vue.js vuejs2 vue-tables-2






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 8 at 10:31









Capt. Teemo

64614




64614










asked Nov 8 at 10:11









MONSTER

899




899












  • you should use v-for for easier manipulation of html elements.
    – Capt. Teemo
    Nov 8 at 10:32


















  • you should use v-for for easier manipulation of html elements.
    – Capt. Teemo
    Nov 8 at 10:32
















you should use v-for for easier manipulation of html elements.
– Capt. Teemo
Nov 8 at 10:32




you should use v-for for easier manipulation of html elements.
– Capt. Teemo
Nov 8 at 10:32












2 Answers
2






active

oldest

votes

















up vote
0
down vote













With vue-tables-2 I don't think there's any other choice but to have conditional for different column sets, like in computed. For example:



computed: {
fields: function() {
let fields = [{key: 'id', label: '#'}, {key: 'name', label: 'Name'}]
if (this.authorize === 1) {
fields.push({key: 'action', label: 'Action'})
}
return fields
}
}





share|improve this answer




























    up vote
    0
    down vote



    accepted










    I just found a simple solution by not using the table on this way:



    <b-table :fields="fields" :items="data">
    <template slot="action" slot-scope="data" v-if="authorize = 1">
    </template>
    </b-table>


    I just used this simple html table:



    <table class="table" style="width:100%">
    <thead>
    <tr>
    <th>#</th>
    <th>Name</th>
    <th v-if="authorize == 1">Action</th>
    </tr>
    </thead>
    <tbody>
    <tr v-for="user in data">
    <td>{{ user.id }}</td>
    <td>{{ user.name }}</td>
    <td v-if="authorize == 1">
    <button variant="primary">Delete</button>
    </td>
    </tr>
    </tbody>
    </table>


    Here, I can easily manipulate to remove/show the column and its data.



    Thanks!






    share|improve this answer





















      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














       

      draft saved


      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205525%2fhow-to-remove-the-whole-column-in-vue-table%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      0
      down vote













      With vue-tables-2 I don't think there's any other choice but to have conditional for different column sets, like in computed. For example:



      computed: {
      fields: function() {
      let fields = [{key: 'id', label: '#'}, {key: 'name', label: 'Name'}]
      if (this.authorize === 1) {
      fields.push({key: 'action', label: 'Action'})
      }
      return fields
      }
      }





      share|improve this answer

























        up vote
        0
        down vote













        With vue-tables-2 I don't think there's any other choice but to have conditional for different column sets, like in computed. For example:



        computed: {
        fields: function() {
        let fields = [{key: 'id', label: '#'}, {key: 'name', label: 'Name'}]
        if (this.authorize === 1) {
        fields.push({key: 'action', label: 'Action'})
        }
        return fields
        }
        }





        share|improve this answer























          up vote
          0
          down vote










          up vote
          0
          down vote









          With vue-tables-2 I don't think there's any other choice but to have conditional for different column sets, like in computed. For example:



          computed: {
          fields: function() {
          let fields = [{key: 'id', label: '#'}, {key: 'name', label: 'Name'}]
          if (this.authorize === 1) {
          fields.push({key: 'action', label: 'Action'})
          }
          return fields
          }
          }





          share|improve this answer












          With vue-tables-2 I don't think there's any other choice but to have conditional for different column sets, like in computed. For example:



          computed: {
          fields: function() {
          let fields = [{key: 'id', label: '#'}, {key: 'name', label: 'Name'}]
          if (this.authorize === 1) {
          fields.push({key: 'action', label: 'Action'})
          }
          return fields
          }
          }






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 8 at 11:10









          artoju

          664




          664
























              up vote
              0
              down vote



              accepted










              I just found a simple solution by not using the table on this way:



              <b-table :fields="fields" :items="data">
              <template slot="action" slot-scope="data" v-if="authorize = 1">
              </template>
              </b-table>


              I just used this simple html table:



              <table class="table" style="width:100%">
              <thead>
              <tr>
              <th>#</th>
              <th>Name</th>
              <th v-if="authorize == 1">Action</th>
              </tr>
              </thead>
              <tbody>
              <tr v-for="user in data">
              <td>{{ user.id }}</td>
              <td>{{ user.name }}</td>
              <td v-if="authorize == 1">
              <button variant="primary">Delete</button>
              </td>
              </tr>
              </tbody>
              </table>


              Here, I can easily manipulate to remove/show the column and its data.



              Thanks!






              share|improve this answer

























                up vote
                0
                down vote



                accepted










                I just found a simple solution by not using the table on this way:



                <b-table :fields="fields" :items="data">
                <template slot="action" slot-scope="data" v-if="authorize = 1">
                </template>
                </b-table>


                I just used this simple html table:



                <table class="table" style="width:100%">
                <thead>
                <tr>
                <th>#</th>
                <th>Name</th>
                <th v-if="authorize == 1">Action</th>
                </tr>
                </thead>
                <tbody>
                <tr v-for="user in data">
                <td>{{ user.id }}</td>
                <td>{{ user.name }}</td>
                <td v-if="authorize == 1">
                <button variant="primary">Delete</button>
                </td>
                </tr>
                </tbody>
                </table>


                Here, I can easily manipulate to remove/show the column and its data.



                Thanks!






                share|improve this answer























                  up vote
                  0
                  down vote



                  accepted







                  up vote
                  0
                  down vote



                  accepted






                  I just found a simple solution by not using the table on this way:



                  <b-table :fields="fields" :items="data">
                  <template slot="action" slot-scope="data" v-if="authorize = 1">
                  </template>
                  </b-table>


                  I just used this simple html table:



                  <table class="table" style="width:100%">
                  <thead>
                  <tr>
                  <th>#</th>
                  <th>Name</th>
                  <th v-if="authorize == 1">Action</th>
                  </tr>
                  </thead>
                  <tbody>
                  <tr v-for="user in data">
                  <td>{{ user.id }}</td>
                  <td>{{ user.name }}</td>
                  <td v-if="authorize == 1">
                  <button variant="primary">Delete</button>
                  </td>
                  </tr>
                  </tbody>
                  </table>


                  Here, I can easily manipulate to remove/show the column and its data.



                  Thanks!






                  share|improve this answer












                  I just found a simple solution by not using the table on this way:



                  <b-table :fields="fields" :items="data">
                  <template slot="action" slot-scope="data" v-if="authorize = 1">
                  </template>
                  </b-table>


                  I just used this simple html table:



                  <table class="table" style="width:100%">
                  <thead>
                  <tr>
                  <th>#</th>
                  <th>Name</th>
                  <th v-if="authorize == 1">Action</th>
                  </tr>
                  </thead>
                  <tbody>
                  <tr v-for="user in data">
                  <td>{{ user.id }}</td>
                  <td>{{ user.name }}</td>
                  <td v-if="authorize == 1">
                  <button variant="primary">Delete</button>
                  </td>
                  </tr>
                  </tbody>
                  </table>


                  Here, I can easily manipulate to remove/show the column and its data.



                  Thanks!







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 9 at 7:48









                  MONSTER

                  899




                  899






























                       

                      draft saved


                      draft discarded



















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205525%2fhow-to-remove-the-whole-column-in-vue-table%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Guess what letter conforming each word

                      Port of Spain

                      Run scheduled task as local user group (not BUILTIN)