Может кто-нибудь объяснить мне, если v-модель: :модельзначение обновление:модельвалуе тогда что произойдет, если v-model с update:modelValue использовала оба. Итак, в моем коде есть этот компонент:
<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/3.4.8/vue.global.min.js"></script>
<select-component
v-model = "selectedOrganization"
:tooltip = "selectedOrganization?.name"
:getOptionLabel = "organization => organization.name"
:options = "organizations"
:searchable = "true"
:clearable = "false"
@update:modelValue = "changeOrRedirectModal"
@search = "organizationSearchHandlerAsync">
</select-component>
Под капотом этот компонент использует v-select.
<v-select
ref = "select"
:title = "tooltip"
class = "select-component"
:class = "{ 'error-select': hasErrorsInternal }"
:disabled = "disabled"
:style = "width ? `width: ${width}` : null"
v-bind = "$attrs"
:modelValue = "modelValue"
:options = "options"
:taggable = "taggable"
:multiple = "multiple"
:placeholder = "placeholder"
@search:focus = "opened"
@update:modelValue = "onItemSelected"
@search = "(query, loadDelegate) => $emit('search', query, loadDelegate)">
<div v-for = "(s, name) in $slots" :key = "name" :slot = "name">
<renderer :vnode = "s" />
</div>
<div
v-for = "(f, name) in $slots"
:key = "name"
:slot = "name"
slot-scope = "props"
:title = "showItemsTooltips ? props.fullName : null">
<renderer :vnode = "f(props)" />
</div>
</v-select>
Мне нужно запретить логику по умолчанию при изменении заголовка в update:modelValue, но только если в модели перенаправления [другой компонент, у которого есть только реквизиты для отображения и методы для перенаправления в другую организацию по URL-адресу или скрытия без перенаправления] пользователь нажимает кнопку принятия.
Таким образом, использование v-модели приводит к изменению заголовка независимо от того, какая кнопка нажата. Как я могу решить эту проблему? Я не думаю, что изменение v-model на :modelValue решит эту проблему, поскольку внутри логики ChangeOrRedirectModal нет изменения значения.
Спасибо за комментарий, сейчас добавим этот код
«другой компонент, который имеет только реквизиты для отображения и методы для перенаправления в другую организацию по URL-адресу или скрытия без перенаправления] пользователь нажимает кнопку принятия» - это не отображается. Неясно, при каких условиях это должно произойти и в каком компоненте эти реквизиты доступны. «внутри логики ChangeOrRedirectModal значение не меняется» - оно также не отображается
v-модель содержит текущее значение (по умолчанию или обновленное без контроля). @update:modelValue это похоже на событие, которое срабатывает после обновления v-модели. Я не уверен, что именно вы делаете с другими компонентами и перенаправлениями при щелчке (мне кажется, что вам нужно что-то проверить, прежде чем обновлять значение v-модели). Пытались ли вы использовать вычисленное значение (:value="computedValue") вместо v-модели и изменение события для управления новым значением?
Нет, я не пробовал вычислять, но это отличная идея! Спасибо, я попробую и думаю, что получится
Каким образом этот компонент использует v-select? вы также много говорите о кнопках и операторе, но только если в модели перенаправления пользователь нажимает кнопку «Принять», это очень сбивает с толку.