๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
javascript๐Ÿช“/์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณต๋ถ€

๋“œ๋กญ๋‹ค์šด ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ์‹œ ํ•˜์œ„์นดํ…Œ๊ณ ๋ฆฌ (์•ต๊ทค๋Ÿฌ)

by hyojinny 2023. 11. 22.

 

 

๋Œ€๋ถ„๋ฅ˜ ์นดํ…Œ๊ณ ๋ฆฌ ๋งŒ๋“ค๊ธฐ 

 

categoryList ๋ณ€์ˆ˜์•ˆ์— 2์ค‘ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. 

categoryList = [
    {
      category : 'IT',
      children : [
        {name: '๊ธฐํš'},
        {name: '๋””์ž์ธ'},
        {name: '๊ฐœ๋ฐœ'},
        {name: '๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค'},
        {name: '๋งˆ์ผ€ํŒ…'},
      ],
    },
    {
      category : '์–ดํ•™',
      children : [
        {name: 'ํšŒํ™”'},
        {name: '์ž‘๋ฌธ'},
        {name: '์ž๊ฒฉ์ฆ'},
        {name: '์–ธ์–ด๊ตํ™˜'},
      ],
    },
  ]

 

 

for๋ฌธ์„ ๋Œ๋ฆด ์œ„์น˜์— ๋ฐฐ์—ด์„ ๋งŒ๋“  categoryList ๋ฅผ categorylistbig ์œผ๋กœ ๋ฐ›์•„์™€ 

๋Œ€๋ถ„๋ฅ˜์ธ category์— ์ ‘๊ทผ

 

<ul class="reed-menu-list">
                <li class="reed-menu-item"
                  *ngFor="let categorylistbig of categoryList"
                  (click)="categoryBigMenu(categorylistbig)">
                  <button>{{categorylistbig.category}}</button>
                </li>
              </ul>

 

 

์ด๋•Œ ํด๋ฆญ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด ํด๋ฆญ์‹œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ฒŒ๋” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์คŒ 

 

ํด๋ฆญ์‹œ   categoryBigMenu ํ•จ์ˆ˜ ์‹คํ–‰  >  categorylistbig > ๋Œ€๋ถ„๋ฅ˜ ์นดํ…Œ๊ณ ๋ฆฌ ํ•ญ๋ชฉ์„ ๋ฐ›์Œ 

  categoryBigMenu(selectedCategoryInfo){
  console.log('selectedCategoryInfo: ', selectedCategoryInfo);
  console.log(selectedCategoryInfo.children)

 

categoryBigMenu(selectedCategoryInfo) ์˜ ๋ฐ์ดํ„ฐ ๋‚ด์šฉ์€

 

 

๋Œ€๋ถ„๋ฅ˜ IT ์— ๋Œ€ํ•œ children ์ด ๋“ค์–ด์˜จ๋‹ค. 

์ •๋ณด๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜์•ˆ์— chiledren์„ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด์„œ ๋ฆฌ์ŠคํŠธ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์ค€๋‹ค. 

 

๋Œ€๋ถ„๋ฅ˜ ํ•ญ๋ชฉ๋“ค์„ ๋ฐ›์„ ๋นˆ ๋ฐฐ์—ด ๋ณ€์ˆ˜

categorySmall = []

//์„ ํƒ๋œ ์ƒ์œ„ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ฐ›์„ ๋นˆ๋ฐฐ์—ด ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ฆ 
categorySmall = []

 

 


๋งŒ๋“  ๋นˆ๋ฐฐ์—ด ๋ณ€์ˆ˜์— ํด๋ฆญ๋œ ๋Œ€๋ถ„๋ฅ˜์˜ children ์„ ๋‹ด๋Š”๋‹ค.

  categoryBigMenu(selectedCategoryInfo){
  console.log('selectedCategoryInfo: ', selectedCategoryInfo);

  this.categorySmall = selectedCategoryInfo.children
  console.log('categorySmall: ', this.categorySmall);
  }

 

 

 

์ฆ‰ ๋นˆ๋ฐฐ์—ด์ด ์˜€๋˜ caregorySmall ์€ ๋Œ€๋ถ„๋ฅ˜ ํด๋ฆญ์‹œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ selectedCategoryInfo์˜ children ์„ ๋‹ด๋Š”๋‹ค. 

 

 


๋งˆ์ง€๋ง‰ html ์—์„œ for ๋ฌธ ๋Œ๋ฆฌ๊ธฐ 

 

              <ul class="reed-menu-list">
                <li class="reed-menu-item" *ngFor="let categorylistsmall of categorySmall"
                  (click)="categoryBigMenu(categorySmall)">
                  <button>{{categorylistsmall.name}}</button>
                </li>
              </ul>

 

 

*ngFor="let categorylistsmall of categorySmall"
           

ํด๋ฆญ์ด๋ฒคํŠธ๋กœ categoryBigMenu ํด๋ฆญ์‹œ ๋นˆ๋ฐฐ์—ด์— ๋‹ด์•„๋†“์€ categorySmall ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ด 

(click)="categoryBigMenu(categorySmall)">

 

๊ฐ€์ ธ์˜จ ํ•˜์œ„ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ์—์„œ name ์—์ ‘๊ทผ

{{categorylistsmall.name}}

 

 

 


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ „์ฒด (์•ต๊ทค๋Ÿฌ)

categorySmall = []
categoryList = [
    {
      category : 'IT',
      children : [
        {name: '๊ธฐํš'},
        {name: '๋””์ž์ธ'},
        {name: '๊ฐœ๋ฐœ'},
        {name: '๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค'},
        {name: '๋งˆ์ผ€ํŒ…'},
      ],
    },
    {
      category : '์–ดํ•™',
      children : [
        {name: 'ํšŒํ™”'},
        {name: '์ž‘๋ฌธ'},
        {name: '์ž๊ฒฉ์ฆ'},
        {name: '์–ธ์–ด๊ตํ™˜'},
      ],
    },
  ]
  
  categoryBigMenu(selectedCategoryInfo){
  console.log('selectedCategoryInfo: ', selectedCategoryInfo);

  this.categorySmall = selectedCategoryInfo.children
  console.log('categorySmall: ', this.categorySmall);
  }

 

๋Œ“๊ธ€