1

当您尝试搜索下拉列表中不存在的元素时,md-autocomplete 在 md-virtual-repeat-container 中提供了一个名为 md-not-found 的类,并在下方显示一条错误消息。当您从输入元素中移除焦点时,md-not-found 将被移除。因此,自动完成给人一种错误的印象,认为输入是有效的,因为用户没有得到任何反馈。

有没有办法保持类“md-not-found”,即使在您取消输入元素的焦点之后?

md-autocomplete 官方演示:https ://material.angularjs.org/latest/demo/autocomplete

更新

我做了一个临时解决方案:

<label class="{{selectedItem !== null || searchText === '' ? '' : 'label-error'}}">Name</label>

标签错误类应用红色。

该解决方案本身并不是问题的答案,而是提供了另一种快速解决方案

4

1 回答 1

0

我在 md-chips 中使用了 md-autocomplete,它的工作和你想要的一样好。当请求返回 noContent(204) md-not-found 是可见的并且在用户再次开始发短信之前它不会消失。

<md-content layout="column">
   <md-chips
              class="md-input"
              ng-model="myItem"
              md-autocomplete-snap
              md-on-add="change()"
              md-on-remove="change()"
              required
              md-require-match="true"
              md-transform-chip="reformr($chip)"
              md-separator-keys="keys">
<md-autocomplete md-selected-item="selectedItem"
                               md-no-cache="true"
                               md-search-text="search.text"
                               md-items="item in getSuggestedItems()"
                               md-item-text="item.name"
                               md-min-length="0"  
                               placeholder="{{ 'textItemName' | translate }}"
                               required
                               md-input-name="suggestedItem"
                               md-search-text-change="listSuggestedItems(search.text)">
                <span md-highlight-text="search.text" md-highlight-flags="^i">{{item.name}}</span>
                <md-not-found>
                  {{'no_item_found' | translate}}
                </md-not-found>
              </md-autocomplete>
  </md-content>

于 2016-05-05T10:41:23.093 回答