javascript - 如果选择自动完成输入,则显示/隐藏 Div

标签 javascript angularjs autocomplete angular-material

我有两个 Angular-Material 自动完成字段添加为 shown here到目前为止,它运行良好。

自动完成代码:

HTML:

<form ng-submit="$event.preventDefault()">
    <md-autocomplete
    ng-disabled="ctrl.isDisabled"
    md-no-cache="ctrl.noCache"
    md-selected-item="ctrl.selectedItem"
    md-search-text-change="ctrl.searchTextChange(ctrl.searchText2)"
    md-search-text="ctrl.searchText2"
    md-selected-item-change="ctrl.selectedItemChange(item)"
    md-items="item in ctrl.querySearch(ctrl.searchText2)"
    md-item-text="item.display"
    md-min-length="1"
    md-floating-label="Destination"
    ng-model="destiFlight">
    <md-item-template>
        <span md-highlight-text="ctrl.searchText" md-highlight-flags="^i">{{item.display}}</span>
    </md-item-template>
    <md-not-found>
        No states matching "{{ctrl.searchText}}" were found.
    </md-not-found>
    </md-autocomplete>
</form>

JS:

.controller('someCtrl', someCtrl);
  function someCtrl($timeout, $q, $log) {
    var self = this;
    self.simulateQuery = false;
    self.isDisabled = false;
    // list of `state` value/display objects
    self.states = loadAll();
    self.querySearch = querySearch;
    self.selectedItemChange = selectedItemChange;
    self.searchTextChange = searchTextChange;
    self.newState = newState;
    function newState(state) {
        alert("Sorry! You'll need to create a Constituion for " + state + " first!");
    }
    // ******************************
    // Internal methods
    // ******************************
    /**
     * Search for states... use $timeout to simulate
     * remote dataservice call.
     */
    function querySearch(query) {
        var results = query ? self.states.filter(createFilterFor(query)) : self.states,
                deferred;
        if (self.simulateQuery) {
            deferred = $q.defer();
            $timeout(function () {
                deferred.resolve(results);
            }, Math.random() * 1000, false);
            return deferred.promise;
        } else {
            return results;
        }
    }
    function searchTextChange(text) {
        $log.info('Text changed to ' + text);
    }
    function selectedItemChange(item) {
        self.selectedItem3=item;
        $log.info('Item changed to ' + JSON.stringify(item));
    }
    /**
     * Build `states` list of key/value pairs
     */
    function loadAll() {
        var allStates = 'Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware,\
                Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana,\
                Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana,\
                Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina,\
                North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina,\
                South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia,\
                Wisconsin, Wyoming';
        return allStates.split(/, +/g).map(function (state) {
            return {
                value: state.toLowerCase(),
                display: state
            };
        });
    }
    /**
     * Create filter function for a query string
     */
    function createFilterFor(query) {
        var lowercaseQuery = angular.lowercase(query);
        return function filterFn(state) {
            return (state.value.indexOf(lowercaseQuery) === 0);
        };
    }
};

现在我在两个字段下面添加了一个 div,如下所示:

<div class="someDiv">
    ....
</div>

如何仅在从自动完成下拉列表中选择值时才显示 div?

最佳答案

您应该使用存储自动完成所选值的模型:

自动完成:

<md-autocomplete
      md-selected-item="mySelectedItem"
      md-items="item in myList"
      md-item-text="item.name"
      md-min-length="0"
      placeholder="Select country">

还有 div:

<div class="someDiv" ng-show="mySelectedItem && mySelectedItem.length != 0">
     ....
</div>

关于javascript - 如果选择自动完成输入,则显示/隐藏 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33667217/

相关文章:

javascript - 如何打开 Bootstrap 选择菜单

javascript - Angular 翻译问题

javascript - 如何消除 Angular 中的故障/延迟?

jquery - typeahead.js 返回 "blank"数据集

vim - vim 中的类似 Bash 的代码完成?

jquery - 带有自定义滚动条的自动完成 jquery UI 插件

javascript - D3.js y 轴时间刻度

javascript - D3.js 从节点构建链接?

javascript - 如何使用 Bootstrap 重置弹出模式的位置?

javascript - 循环对象,根据位置输出不同的html