221014 μ‚½μ§ˆ

Whiimsy_devΒ·2022λ…„ 10μ›” 14일

μ‚½μ§ˆκΈ°

λͺ©λ‘ 보기
1/6

πŸ‘·β€β™‚οΈ hasOwnProperty λͺ»μ½μŒ

Response data에 url 속성이 μžˆλŠ”λ°.. μ™œ μ½˜μ†”λ‘œ 찍어도 μ•ˆλ‚˜μ˜€κ³  hasOwnProperty둜 μ•ˆ 읽힐까

console.log(data.url); // undefined
console.log(data.hasOwnProperty('url')); // false
if (data.hasOwnProperty('url')) { // ifλ¬Έ μ•ˆμœΌλ‘œ μ•ˆλ“€μ–΄μ˜΄
    history.push(data.url);

filename도 λ§ˆμ°¬κ°€μ§€λ‘œ μž‘νžˆμ§€ μ•ŠλŠ”λ‹€ 흠 λ°μ΄ν„°μ˜ ν‚€ κ°’λ“€ λ°›μ•„μ˜€κΈ° μœ„ν•΄ Object.keys() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄λ³΄μ•˜λ‹€.

console.log("ν‚€ κ°’λ“€", Object.keys(data));


ν—‰... dataκ°€ μ•ˆμ— 또 μžˆμ—ˆλ‹€ 이 μ•ˆμ— url이 μžˆλŠ” 것 κ°™λ‹€.

console.log("url : ", data.data.url);

πŸ”¨ μš”λ ‡κ²Œ λ‹€μ‹œ 찍어보면 잘 μ°νžŒλ‹€!


πŸ‘·β€β™‚οΈ 파일 λ‹€μš΄λ‘œλ“œ 링크둜 이동

이제 이 링크둜 μ΄λ™ν•΄μ„œ μ—‘μ…€ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•  수 있게 ν•΄μ•Όν•˜λŠ”λ°... κΈ°μ‘΄ νŽ˜μ΄μ§€ 이동 방식인 history.push(path)λ₯Ό μ‚¬μš©ν•˜λ‹ˆ λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ μŠ€ν„°λ”” νŽ˜μ΄μ§€λ‘œ λŒμ•„μ˜¨λ‹€ μž‰?!

πŸ”¨ 링크 이동을 link.href와 a νƒœκ·Έλ₯Ό μ΄μš©ν•΄ ν•˜λ©΄ 파일 λ‹€μš΄λ‘œλ“œ νŒμ—…μ°½μ΄ 뜨게 λœλ‹€!

if (data.data.hasOwnProperty('url')) {
  const url = data.data.url;
  const link = document.createElement('a');
  link.href = url;
  link.setAttribute('download',`${data.data.filename}$.xml`);
  link.style.cssText = 'display:none';
  document.body.appendChild(link);
  link.click();
  link.remove();
}

πŸ‘·β€β™‚οΈ AUI Grid 맨 λν–‰μœΌλ‘œ λ“œλž˜κ·Έ μ•€ λ“œλžμ΄ μ•ˆλ¨


첫번째 행을 μ„Έλ²ˆμ§Έ ν–‰ λ°‘μœΌλ‘œ 내리고 싢은데 μ•ˆλΌμ„œ AUI Grid 곡식 데λͺ¨λ₯Ό λ³΄λ‹ˆ κ°€λŠ₯ν•˜λ‹¨λ‹€ 뭐가 λ‹€λ₯Έμ§€ μ‚΄νŽ΄λ³΄μž₯..
μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜λŠ” κ·Έλ¦¬λ“œμ˜ 속성을 λ¨Όμ € 보면

// 정상 μž‘λ™
var gridPros = {
    selectionMode: "multipleCells",
    // λ“œλž˜κΉ… ν–‰ 이동 κ°€λŠ₯ μ—¬λΆ€ (κΈ°λ³Έκ°’ : false)
    enableDrag: true,
    // λ‹€μˆ˜μ˜ 행을 ν•œλ²ˆμ— 이동 κ°€λŠ₯ μ—¬λΆ€(κΈ°λ³Έκ°’ : true)
	enableMultipleDrag: true,
	// μ…€μ—μ„œ λ°”λ‘œ  λ“œλž˜κΉ… ν•΄ 이동 κ°€λŠ₯ μ—¬λΆ€ (κΈ°λ³Έκ°’ : false) - enableDrag=true 섀정이 μ„ ν–‰ 
	enableDragByCellDrag: true,
	// λ“œλž κ°€λŠ₯ μ—¬λΆ€ (κΈ°λ³Έκ°’ : true)
	enableDrop: true,
	editable: true
};

μ§€κΈˆ λΉ„μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜λŠ” κ·Έλ¦¬λ“œμ˜ 속성은 μ•„λž˜μ™€ κ°™λ‹€

// 비정상 μž‘λ™
const auiGridProps = {
  showRowNumColumn: true,  // no ν‘œμ‹œ
  wrapSelectionMove: true,
  enableSorting: false,
  editable: lock !== 2,
  wordWrap: true,
  height: gridHeight,

  enableDrag: true,
  enableDragByCellDrag: true,
  enableDrop: true
};

λ‹€λ₯Έ κ²ƒλ“€λ§Œ 정리해보면

  • selectionMode : μ…€ 선택λͺ¨λ“œλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 유효 속성값은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. (singleCell, singleRow, multipleCells, multipleRows, none) β†’ κΈ°λŠ₯에 μ§€μž₯ μ—†μŒ
  • enableMultipleDrag : λ‹€μˆ˜μ˜ 행을 ν•œλ²ˆμ— λ“œλž˜κΉ… κ°€λŠ₯ μ—¬λΆ€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. selectionMode λ₯Ό "multipleCells" λ˜λŠ” "multipleRows" 인 경우 μœ νš¨ν•©λ‹ˆλ‹€. λ˜ν•œ 속성 enableDrag=true 섀정이 μ„ ν–‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. β†’ κΈ°λŠ₯에 μ§€μž₯ μ—†μŒ
  • showRowNumColumn : ν–‰ μ€„λ²ˆν˜Έ(둜우 λ„˜λ²„λ§) 칼럼의 좜λ ₯ μ—¬λΆ€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 이 속성 값이 true 이면 μ΅œμ’ŒμΈ‘μ— ν–‰λ²ˆν˜Έ 칼럼이 μƒμ„±λ©λ‹ˆλ‹€. β†’ κΈ°λŠ₯에 μ§€μž₯ μ—†μŒ
  • wrapSelectionMove : λ§ˆμ§€λ§‰ μΉΌλŸΌμ—μ„œ 였λ₯Έμͺ½ ν™”μ‚΄ν‘œ ν‚€ λ˜λŠ” Tab ν‚€λ₯Ό λˆ„λ₯Έ 경우 λ‹€μŒ ν–‰μ˜ μ‹œμž‘ 칼럼으둜 이동할지 μ—¬λΆ€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ°˜λŒ€λ‘œ μ‹œμž‘ μΉΌλŸΌμ—μ„œ μ™Όμͺ½ ν™”μ‚΄ν‘œ ν‚€ λ˜λŠ” Shift+Tab ν‚€λ₯Ό λˆ„λ₯Έ 경우 이전 ν–‰μ˜ λ§ˆμ§€λ§‰ 칼럼으둜 이동 μ—¬λΆ€μž…λ‹ˆλ‹€. β†’ κΈ°λŠ₯에 μ§€μž₯ μ—†μŒ
  • enableSorting : μ •λ ¬ κ°€λŠ₯ μ—¬λΆ€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. β†’ κΈ°λŠ₯에 μ§€μž₯ μ—†μŒ
  • wordWrap : 이 속성값이 true 인 경우 μžλ™ word-wrap 이 λ°œμƒν•˜λ©° 각 ν–‰μ˜ 높이가 μ„€μ •ν•œ ν…μŠ€νŠΈμ— 맞게 κ°€λ³€μ μœΌλ‘œ λ Œλ”λ§λ©λ‹ˆλ‹€. β†’ κΈ°λŠ₯에 μ§€μž₯ μ—†μŒ

속성 λ¬Έμ œλŠ” μ•„λ‹Œ λ“―ν•˜λ‹€..πŸ˜“

- AUIGrid.js
- λ¬Έμ œκ°€ λ˜λŠ” κ·Έλ¦¬λ“œ μ»΄ν¬λ„ŒνŠΈ

λ‹€ λ’€μ Έλ΄€λŠ”λ° 뭐가 λ¬Έμ œμΈκ±΄μ§€ 흠.. 이 ν™”λ©΄ 말고 λ‹€λ₯Έ νŽ˜μ΄μ§€μ—μ„œλ„ 같은 λ¬Έμ œκ°€ λ°œμƒν•˜λŠ” κ±° 보면 AUI Gridκ°€ 문제인 것 κ°™λ‹€.

0개의 λŒ“κΈ€