2017-11-29 11 views
1

モジュール:https://github.com/matfish2/vue-tables-2リロードデータ(Vuex)

私はCRUDアプリを作成しています。 vue-tables-2でAjaxコール経由でフェッチされたデータを再ロードするにはどうすればよいですか?私は、更新ステートメントが私のアプリのどこかで実行された後にテーブルをリロードしたかったのです。

私のセットアップでは、Vue-tablesがvuexを使用しています。

<v-server-table 
    name="UserAdmin" url="admin/master/?format=json" :columns="columns" :options="options"> 
</v-server-table> 

EDIT:データプロパティの表のJavascriptコードを追加しました。

export default { 
    data() { 
     return { 
      columns: ['ID','NAME', 'POSITION', 'APPLICATIONS','DESCRIPTION','STATUS','ENCODED_BY'], 
      options: { 
       responseAdapter: (resp) => { 
        resp = resp.map(item => ({ 
         ID: item.ID, 
         FK_ID: item.FK_ID, 
         NAME: `${item.FIRSTNAME} ${item.LASTNAME}`, 
         POSITION: item.POSITION, 
         APPLICATIONS: item.APPLICATIONS, 
         DESCRIPTION: item.DESCRIPTION, 
         STATUS: item.STATUS, 
         ENCODED_BY: item.ENCODED_BY, 
         TOTAL: item.TOTAL 
        })); 
        let count; 
        if(resp[0] != null) { 
         count = resp[0]['TOTAL'] 
        } 
        else { 
         count = 0 
        } 
        return { 
         data: resp, 
         count: count 
        } 
       }, 
       headings: { 
        'ID': <span># &nbsp;</span>, 
        'NAME':'Name', 
        'POSITION':'Position', 
        'APPLICATIONS':'Applications', 
        'DESCRIPTION':'Description', 
        'STATUS': 'Status', 
        'ENCODED_BY':'Encoded By', 
        'edit': 'Options' 
       }, 
       columnsClasses: { 
         ID: 'col-md-1', 
         NAME:'col-md-2 pointer', 
         POSITION: 'col-md-2', 
         APPLICATIONS: 'col-md-2', 
         DESCRIPTION: 'col-md-2', 
         STATUS: 'col-md-1', 
         ENCODED_BY: 'col-md-2', 
       }, 
       templates: { 
        NAME: (h, row) => { 
         return <a on-click={() => this.setUpdateID(row) }>{row.NAME}</a> 
       }, 
       APPLICATIONS: (h,row) => { 
        return (<ul>{JSON.parse(row.APPLICATIONS).map((val)=>(<li>{val}</li>))}</ul>); 
       }, 
       STATUS: (h, row) => { 
        if(row.STATUS == 1) { 
         return <span class="label label-success">Active</span> 
        } 
        else if(row.STATUS == 0) { 
         return <span class="label label-danger">Inactive</span> 
        } 
       } 
       }, 
      }, 
     } 
    }, 
    methods: { 
     setUpdateID: function(row) { 
      this.$store.commit('SET_UPDATE_ID', row.FK_ID); 
     } 
    } 
} 
+0

それは有用であろう。それはここの仕様に準拠していますか?https://github.com/matfish2/vue-tables-2#server-side – 82Tuskers

+0

@ 82Tuskersコードを追加しました。上記を参照してください。 私が今行っているのは、テーブルにv-ifを追加することです。私はUPDATE文を実行するときにv-ifをfalseに設定し、250秒後に再びtrueに設定します。 –

+0

UPDATE文を実行した後に 'this。$ forceUpdate()'を実行しようとする可能性があります – Jpod

答えて

1

文書に記載されているように、refreshメソッドを使用する必要があります。 あなたはJavascriptについてrefshere

<v-server-table ref="table" 
    name="UserAdmin" url="admin/master/?format=json" :columns="columns" :options="options"> 
</v-server-table> 

読むことができます:あなたはJSONが含まれている場合

methods:{ 
    onUpdate() { 
    this.$refs.table.refresh(); 
    } 
} 
関連する問題