Множественное условие для встроенного стиля в Vue

#javascript #vuejs2 #vue-component

#javascript #vuejs2 #vue-компонент

Вопрос:

Я пытаюсь предоставить несколько if / else для встроенного стиля для нескольких значений, на которые я хочу настроить таргетинг. Я не знаю ни одного способа сделать это и поискал его в Google, но ничего не нашел. Надеюсь, кто-нибудь здесь может посоветовать. Спасибо.

 <v-card
          style="width: fit-content"
          v-for="(message,index) in messages"
          :key="index"
          :style="{'margin-left': message.isRobot ? '' : 'auto'}"
          :style="{'border-top-left-radius': message.isRobot ? '0' : ''}"
          :color="message.isRobot? '#F5F3FF' :'#C66BCC'" 
          id="convo-space"
        >
  

Ответ №1:

Вы также можете определить стили как класс в разделе стиль, а затем переключаться между классами с помощью встроенных строк. Таким образом, вы достигаете упрощения написания и редактирования, ясности и возможности повторного использования.

 <v-card 
   v-for="(message, index) in messages" 
   ... 
   :class="message.isRobot? robot : noRobot">
</v-card>
  

Стили:

 .robot {
   margin-left: none,
   border-top-left-radius: 0,
   ...
}

.noRobot {
   margin-left: auto,
   border-top-left-radius: none
   ...
}
  

Ответ №2:

 <div :style="message.isRobot ? 
 'margin-left: none; border-top-left-radius: 0' : 
 'margin-left: auto; border-top-left-radius: none'">
</div>