source

일정 동작을 에뮬레이트하기 위해 닫힘 태그를 조건부로 렌더링합니다.

goodcode 2022. 8. 20. 19:01
반응형

일정 동작을 에뮬레이트하기 위해 닫힘 태그를 조건부로 렌더링합니다.

종료 태그를 조건부로 렌더링할 수 있습니까?v-if그렇다면 올바른 방법은 무엇일까요?나의 첫 번째 직감은 이렇습니다.

<template v-for="day in days">
    <td class="days">{{day.number}}</td>
        <template v-if="day.isSunday">
            </tr>
            <tr>
        </template>
</template>

이 기능은 단독으로 작동하지만,</tr><tr>raw - 이것이 예상되는 동작입니까?

그리고 이것이 불가능할 경우, 테이블 행을 조건부로 분할하는 가장 좋은 방법은 무엇입니까?

특정 케이스는 어레이 내의 - 일/일 및 추가 정보입니다.매일매일isSunday매주 일요일 이후에 새 행을 시작하고 싶다(일정표 동작 흉내내기)

보통 스크립트에 모든 로직을 삽입하고 템플릿섹션에는 속성 및 콜 메서드만 사용하는 것이 좋습니다.따라서 이 경우,computed라고 하는 속성cptDays내가 루프를 통해days어레이 및 일반 요일을 만나면 해당 요일이 일요일이면 일주일 안에 푸시하고 주수를 늘립니다.결국 반환됩니다.month이 어레이를 내 템플릿에서 루프합니다.

메모

부트스트랩의 CSS를 사용하여 예쁘게 표시했습니다.삭제하면 코드는 변경되지 않습니다.

new Vue({
  el: '#app',
  data: {
    days: [{
        "number": 1,
        "isSunday": false
      },
      {
        "number": 2,
        "isSunday": false
      },
      {
        "number": 3,
        "isSunday": false
      },
      {
        "number": 4,
        "isSunday": false
      },
      {
        "number": 5,
        "isSunday": false
      },
      {
        "number": 6,
        "isSunday": false
      },
      {
        "number": 7,
        "isSunday": true
      },
      {
        "number": 8,
        "isSunday": false
      },
      {
        "number": 9,
        "isSunday": false
      },
      {
        "number": 10,
        "isSunday": false
      },
      {
        "number": 11,
        "isSunday": false
      },
      {
        "number": 12,
        "isSunday": false
      },
      {
        "number": 13,
        "isSunday": false
      },
      {
        "number": 14,
        "isSunday": true
      },
      {
        "number": 15,
        "isSunday": false
      },
      {
        "number": 16,
        "isSunday": false
      },
      {
        "number": 17,
        "isSunday": false
      },
      {
        "number": 18,
        "isSunday": false
      },
      {
        "number": 19,
        "isSunday": false
      },
      {
        "number": 20,
        "isSunday": false
      },
      {
        "number": 21,
        "isSunday": true
      },
      {
        "number": 22,
        "isSunday": false
      },
      {
        "number": 23,
        "isSunday": false
      },
      {
        "number": 24,
        "isSunday": false
      },
      {
        "number": 25,
        "isSunday": false
      },
      {
        "number": 26,
        "isSunday": false
      },
      {
        "number": 27,
        "isSunday": false
      },
      {
        "number": 28,
        "isSunday": true
      },

      {
        "number": 29,
        "isSunday": false
      },
      {
        "number": 30,
        "isSunday": false
      },
      {
        "number": 31,
        "isSunday": false
      }
    ]
  },
  computed: {
    cptDays() {
      let month = [],
        i = 0;
      this.days.forEach((day) => {

        if (!day.isSunday) {
          if (month[i] == undefined) {
            month[i] = [];
            month[i].push(day)
          } else {
            month[i].push(day)
          }


        } else {
          month[i].push(day)
          i++;
        }
      });
      return month;
    }

  }

})
<!DOCTYPE html>
<html>

<head>
  <meta name="description" content="Vue.delete">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.1/vue.min.js"></script>
</head>

<body>
  <div id="app">
    <table class="table table-striped">
      <thead>
        <tr>
          <th>Mon</th>
          <th>Tue</th>
          <th>Wed</th>
          <th>Thi</th>
          <th>Fri</th>
          <th>Sat</th>
          <th>Sun</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="week in cptDays">
          <td v-for="day in week ">{{day.number}}</td>
        </tr>
      </tbody>
    </table>
  </div>

언급URL : https://stackoverflow.com/questions/52878624/render-closing-tag-conditionally-in-order-to-emulate-calendar-behavior

반응형