일반적인 질문 : 나는 내 테이블 레이아웃 유적 요소에 싸여되고 기본적으로의 테이블의 전체 폭을 채우기 위해 내 DROPZONE에 추가 된 행을 얻을 수있는 방법DropzoneJS
.
설명 :
나는 테이블 형식으로 업로드 된 파일을 표시하도록 DropzoneJS를 얻기 위해 노력하고있어. 내 Dropzone 내 테이블에 제대로 있지만 previewTemplate 제대로 표시 할 수 없습니다. DROPZONE는 <td></td>
요소에 파일을 추가 할 수 없기 때문에 모든 첫째, 문제가 발생합니다, 그래서
<div class="div-tr">
<div class="div-td"></div>
<div class="div-td"></div>
</div>
내 목표는 DropzoneJS에 previewTemplate를 추가하는 것이다이 사용하는 CSS 같은 테이블 레이아웃 형식으로 내 테이블을 변환하는 문제는 기본적으로 DROPZONE가 previewTemplate에서 <div>
에 클래스 dz-processing dz-image-preview dz-error dz-success
세트를 추가하는 것입니다이
<div class="div-tr">
<div class="div-td">
<i class="fa fa-file-o"></i>
</div>
<div class="div-td">
<div class="dz-filename">
<span data-dz-name></span>
</div>
</div>
<div class="div-td">
<div class="dz-size" data-dz-size></div>
</div>
<div class="div-td">
<div class="dz-progress">
<span class="dz-upload" data-dz-uploadprogress></span>
</div>
</div>
<div class="div-td">
<div class="dz-success-mark">
<span>✔</span>
</div>
<div class="dz-error-mark">
<span>✘</span>
</div>
</div>
</div>
과 같을 것이다. 문서에 따르면, <div>
에 class="dz-preview"
으로 추가되지만 해당 클래스가 존재하는지 여부에 관계없이 다른 클래스가 컨테이너의 첫 번째 내부 요소로 추가되어 해당 previewTemplate이 삽입됩니다. 즉, previewTemplate ,, 테이블 행 있어야하는데이 속성의 잃고 이제 추가 <div>
은 행의 내부 랩이 추가되고 있기 때문에이 일이 처음 <div class="div-td">
+-------------+--------------+-----------+----------+
| | | | | Existing row
+-------------+--------------+-----------+----------+
| | | | | Existing row
+-------------+--------------+-----------+----------+
| | | | | Existing row
+-------------+--------------+-----------+----------+
| | | | | Existing row
+-------------+--------------+-----------+----------+
| | | | | Row added by upload
+---+---+--+--+
의 폭을 보여줍니다되었다. 테이블에 대한
내 CSS 레이아웃이
/* DIV table style */
.div-table{
display: table;
width: 100%;
background-color: #fff;
}
.div-tr{
display: table-row;
}
.div-th, .div-td {
display: table-cell;
padding: 8px 15px;
border-bottom: 1px solid #eaeff0;
vertical-align: middle;
}
.div-thead{
display: table-header-group;
font-weight: bold;
}
.div-tfoot{
display: table-footer-group;
font-weight: bold;
background-color: #fff;
}
.div-tbody{
display: table-row-group;
}
문서가 여기 발견과 같습니다 http://www.dropzonejs.com/#layout
는 CSS를 변경하거나 JS이 감사에 어떤 도움.
나는 당신이 제안하고있는 모든 것을 이미 시도해 보았고 모든 링크를 통과했다. 원래는 모든 요소를 실제 테이블 요소가있는 테이블로 사용했지만 Bower 종속성으로 사용한 후에이 오류가 발생했습니다. 'dropzone.min.js : 1 Uncaught TypeError : a.previewElement.querySelectorAll이 함수가 아닙니다.' 그 점을 조사한 결과 모두가 테이블 요소가 될 수 없다는 사실을 알게되었습니다. 내가 게시 한 JS 예제를 사용하면 'innerHTML is undefined'가됩니다. 이것은 Angular 앱이기 때문에입니다. 이런 일이 발생하는 이유에 대한 조언이 있습니까? 나는 더 조사 할 것이다. – nicolaib
InnerHTML 문을 추가하면 TypeError : 'innerHTML'속성을 읽을 수 없습니다. InnerHTML 문을 추가하면 DOM이 인스턴스화 될 때로드되지 않기 때문입니다. $ timeout과 비슷한 문제를 해결해 봤지만 비슷한 오류가 계속 발생했습니다. – nicolaib
@nicolaib 나는 요소를 아직로드하지 않았기 때문에 다른 오류와 같은 오류가 발생했다는 것을 지적하고 싶습니다. 요소가 아직로드되지 않았으므로이를 피하기 위해 내 스크립트를 '