Ответ 1
Try:
<input :required="test ? true : false">
В VueJS мы можем добавить или удалить элемент DOM с помощью v-if:
<button v-if="isRequired">Important Button</button>
но есть ли способ добавить/удалить атрибуты элемента dom, например, для следующего условно установите требуемый атрибут:
Username: <input type="text" name="username" required>
чем-то похожее на:
Username: <input type="text" name="username" v-if="name.required" required>
Любые идеи?
Try:
<input :required="test ? true : false">
Простейшая форма:
<input :required="test"> // if true
<input :required="!test"> // if false
<input :required="!!test"> // test ? true : false
<input :required="condition">
Вам не нужно <input :required="test ? true : false">
, потому что если test правдиво, вы уже получите атрибут required
, а если test будет ложным, вы не будете получить атрибут. Элемент true : false
является избыточным, как это...
if (condition) {
return true;
} else {
return false;
}
// or this...
return condition ? true : false;
// can *always* be replaced by...
return (condition); // parentheses generally not needed
Простейшим способом выполнения этой привязки является <input :required="condition">
Только если тест (или условие) может быть неверно истолкован, вам нужно будет сделать что-то еще; в этом случае использование Syed !!
делает трюк.
<input :required="!!condition">
Я прошел через ту же проблему, и попробовал вышеуказанные решения! Да, я не вижу prop
но это на самом деле не выполняет то, что требуется здесь.
Моя проблема -
let isValid = false
<any-component
:my-prop="isValue ? 'Hey I am when the value exist': false"
/>
В приведенном выше случае я ожидал, что my-prop
будет передан дочернему компоненту - <any-conponent/>
Я не вижу prop
в DOM
но в моем <any-component/>
появляется ошибка Ошибка проверки типа пропеллера. Как и в дочернем компоненте, я ожидаю, что my-prop
будет String
но это boolean
.
myProp : {
type: String,
required: false,
default: ''
}
Это означает, что дочерний компонент получил опору, даже если он false
. Здесь есть возможность настроить дочерний компонент на default-value
по default-value
а также пропустить проверку. Пропущенные undefined
работы, хотя!
<any-component
:my-prop="isValue ? 'Hey I am when the value exist' : undefined"
/>
Это работает, и моя детская опора имеет значение по умолчанию.