5

我想<md-autocomplete>在 Material AngularJS 中重置控制。

https://material.angularjs.org/latest/#/demo/material.components.autocomplete
https://material.angularjs.org/latest/#/api/material.components.autocomplete/directive/mdAutocomplete

基本上我想将其重置为初始状态。我可以访问ng-model并分配null给它。但是,它不会删除md-item-text属性中包含的显示文本。

请有人让我知道我该如何解决。

4

3 回答 3

5

你需要清除搜索文本,看看这个codepen: http ://codepen.io/anon/pen/QbGZWP?editors=101

我创建了一个调用 clear 函数的按钮:

function clear() {
  self.selectedItem = null;
  self.searchText = "";
}

这些是md-autocomplete指令上设置的属性:

<md-autocomplete 
  md-selected-item="ctrl.selectedItem" 
  md-search-text="ctrl.searchText" 
  md-items="item in ctrl.querySearch(ctrl.searchText)" 
>

注意:您可能还需要其他属性,具体取决于您的情况。

于 2015-05-27T11:27:43.893 回答
2

你可以md-selected-item-change用来处理这个。例如

    <md-autocomplete flex
       md-item-text="item.Text"
       md-items="item in data"
       md-search-text-change="query(searchText)"
       md-search-text="searchText"
       md-selected-item="selectedItem"
       md-no-cache="false"
       md-input-minLength="2"
       md-input-name="exampleAutocomplete"
       md-selected-item-change="addSelectedItem();"
       md-floating-label="Nereye">
           <md-item-template>
               <span md-highlight-text="searchText">{{item.Text}}</span>
           </md-item-template>
           <md-not-found>No matching were found were "{{searchText}}".</md-not-found>
    </md-autocomplete>

在您的控制器端,您必须定义一个名为“addSelectedItem”的函数,并为 searchText 分配一个空字符串。喜欢;

$scope.addSelectedItem = function () {
            $scope.searchText = ''; 
};

这个对我有用。希望它能帮助你解决你的问题。

于 2016-04-22T13:03:55.617 回答
0

设置 md-min-length="1" 将使清除工作没有额外的清除功能或按钮。

于 2016-04-05T11:49:58.760 回答