Фон
Я использую компонент Material Vue AutoComplete для предоставления функций TypeAhead своим пользователям в приложении vue.
Когда браузер Chrome минимизирован по ширине, чтобы проверить отзывчивость, я заметил, что контейнер предложений становится меньше по ширине, но текст внутри контейнера предложений не разбивается в окне. Вместо этого предложение, которое отображается, запускается в поле справа от экрана.
проблема
Я не могу понять, как добавить стили для исправления ранее упомянутой проблемы.
пример
<div class="md-layout md-gutter">
<div class="md-layout-item md-small-size-100">
<md-autocomplete
v-model="currentCustomer"
:md-options="customers"
@md-changed="getCustomers"
@md-opened="getCustomers"
@md-selected="getSelected"
:md-fuzzy-search="false"
>
<label>Search Customers...</label>
<template slot="md-autocomplete-item" slot-scope="{ item, term }">
<md-highlight-text :md-term="term">{{ item.email }}</md-highlight-text>
</template>
<template slot="md-autocomplete-empty" slot-scope="{ term }">
No customers matching "{{ term }}" were found. <a @click="addSearchedCustomer(term)">Create </a>this customer.
</template>
</md-autocomplete>
</div>
В частности, эта строка проходит с экрана, когда нет результатов поиска,
<template slot="md-autocomplete-empty" slot-scope="{ term }"> No customers matching "{{ term }}" were found. <a @click="addSearchedCustomer(term)">Create </a>this customer.</template>
Пример изображения
ОБНОВЛЕНИЕ Что я пробовал
Когда я проверяю AutoComplete с помощью инструментов Chrome Dev, я расширяю div, и это то, на что похоже,
Предложение Container Div -
Вопрос
Глядя на документацию, я не могу найти способ справиться с этим. Как я могу применить стили к этому предложению, чтобы он сломал текст по мере того, как экран становится меньше?
Шаблонный слот, похоже, не отвечает на стиль укладки слов (но другие стили, такие как цвет, работают).
Один из способов, немного взломанный, - использовать <label style="white-space: pre-wrap;">
чтобы получить метку линии muli и использовать директиву для установки высоты.
шаблон
<md-autocomplete v-model="value" :md-options="colors">
<label>Color</label>
<template slot="md-autocomplete-item" slot-scope="{ item, term }">
<span class="color" :style="'background-color: ${item.color}'"></span>
<label v-wrapit
style="white-space: pre-wrap;"
>{{item.name}}</label>
</template>
<template slot="md-autocomplete-empty" slot-scope="{ term }">
<label v-wrapit
style="white-space: pre-wrap;"
>No colors matching "{{ term }}" were found</label>
</template>
директива
<script>
export default {
name: 'AutocompleteTemplate',
directives: {
wrapit: {
inserted: function (el, binding, vnode) {
el.style.height = '${el.scrollHeight}px'
el.style.color = 'red'
console.log('el', el.scrollHeight, el.offsetHeight, el)
}
}
},
data: () => ({
value: null,
colors: [
{ name: 'Aqua blue blue blue blue blue', color: '#00ffff' },
{ name: 'Aquamarine blue', color: '#7fffd4' },
]
}),
стиль
Этот стиль устанавливает общую ширину списка. Это не облачно, потому что меню появляется за пределами <div id="app">
<style>
.md-menu-content {
width: 200px !important;
}
</style>
Здесь есть CodeSandbox.
word-wrap: break-word
для этого конкретного размера носителя?