背景
我正在使用Material Vue自动完成组件向vue应用程序中的用户提供TypeAhead功能。
当最小化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>
图片示例
更新 我尝试过的事情
当我使用Chrome开发工具检查“自动完成”功能时,我会扩展div,这就是它的样子,
建议容器部门-
问题
看文档,我似乎找不到解决此问题的方法。如何在此建议框中应用样式,以便在屏幕变小时会破坏文本?
答案 0 :(得分:3)
模板化的广告位似乎不响应自动换行样式(但是其他样式(如颜色)也可以使用)。
一种有点古怪的方法是使用<label style="white-space: pre-wrap;">
获取多行标签,并使用指令设置高度。
模板
<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。