뷰 사이드 컴포넌트 내의 vue-good 테이블에 커스텀 콘텐츠를 표시하려면 어떻게 해야 합니까?
저는 VueJs에 처음 와서 jQuery를 사용하는 일반적인 Yajra 데이터 테이블 대신 Vue-good-table(여기서 doc: https://xaksis.github.io/vue-good-table/)이라는 라이브러리를 사용하여 데이터 테이블을 내 라라벨 프로젝트에 표시하기로 결정했습니다.백엔드에서 데이터를 표시할 수 있었지만 커스텀 "액션" 열에 편집 버튼을 포함시키는 데 어려움을 겪고 있습니다.나는 여러 가지 방법을 시도했지만 성공하지 못했다.버튼을 클릭하기만 하면 편집 페이지로 리다이렉트 할 수 있는 방법이 필요하기 때문에 내 php 뷰 파일에서 커스텀 컬럼 템플릿을 처리해야 할 것 같습니다.보다 명확하게 하기 위한 코드는 다음과 같습니다.
Php 컨트롤러:
public function index() {
$users = json_encode(User::latest()->get());
$userColumns = json_encode([
[
'label' => 'ID',
'field' => 'id'
],
[
'label' => 'name',
'field' => 'name'
],
[
'label' => 'Email',
'field' => 'email'
],
[
'label' => 'Action',
'field' => 'actions'
]
]);
return view('admin.users.index', compact('users', 'userColumns'));
}
Vue 컴포넌트:
<template>
<div>
<vue-good-table
:columns="columns"
:rows="rows"
compactMode
>
<slot></slot>
</vue-good-table>
</div>
</template>
<script>
import { VueGoodTable } from 'vue-good-table';
export default {
props: ['rows', 'columns'],
components : { VueGoodTable },
}
</script>
<style scoped>
</style>
app.js 파일:
import Vue from 'vue';
import Datatables from './components/datatables';
const app = new Vue({
el: '#app',
components : {
'bdfr-datatables' : Datatables,
},
}
php 파일 표시:
@section('content')
<bdfr-datatables :rows="{{ $users }}" :columns="{{ $userColumns }}">
<!-- wishing to display this part -->
<template slot="table-row" slot-scope="props">
<span v-if="props.column.field === 'actions'">
<a href="#">Edit</a>
</span>
<span v-else>
@{{props.formattedRow[props.column.field]}}
</span>
</template>
</bdfr-datatables>
@endsection
작동하려면 무엇이 부족합니까?잘 부탁드립니다.
커스텀 "actions" 열에 편집 버튼을 포함시키는 데 어려움을 겪고 있습니다.나는 여러 가지 방법을 시도했지만 성공하지 못했다.버튼을 클릭하기만 하면 편집 페이지로 리디렉션할 수 있는 방법이 필요합니다.
질문을 올바르게 이해한 경우 다음과 같은 URL을 통해 사용자 에디션으로 리디렉션되는 링크를 표시합니다./user/1/edit
.
- 먼저, 라라벨스가 무엇을 반환하는지 확인합니다.
같이 가셔도 됩니다.dd(User::latest()->get());
그럴 수 있어요.디폴트로는 명시적으로 지정하지 않는 한 ID는 다른 정보와 함께 취득해야 합니다.$guarded
그들.
- 그런 다음 vue-good-table의 템플릿 시스템을 사용하여 솔루션을 조정하십시오.
이 링크를 선택하면 특정 유형의 "연령" 열을 표시하고 기본적으로 나머지 열을 표시하는 표의 예가 표시됩니다.여기서 흥미로운 점은 각 사용자에게 접속할 수 있는 방법이 props.row
.
따라서 다음과 같은 작업을 수행해야 합니다.
<template slot="table-row" slot-scope="props">
<span v-if="props.column.field == 'actions'">
<a :href="`/user/${props.row.id}/edit`">Edit</a>
</span>
<span v-else>
{{props.formattedRow[props.column.field]}}
</span>
</template>
</vue-good-table>
언급URL : https://stackoverflow.com/questions/65532378/how-can-i-display-custom-content-in-vue-good-table-within-my-view-side-component
'programing' 카테고리의 다른 글
Vue 계산 속성이 상태 변경에 응답하지 않음 (0) | 2022.06.25 |
---|---|
VueJS 및 Firebase, 새로 고침 시 기록 모드 404 오류 (0) | 2022.06.25 |
명령 프롬프트에서 jar 파일 실행 (0) | 2022.06.23 |
비동기 메서드를 사용하여 .vue 파일에서 중단점을 설정할 수 없습니다. (0) | 2022.06.23 |
Linux에서 C에서 셸 스크립트를 실행하는 방법 (0) | 2022.06.23 |