angularjs - md-autocomplete $http get 不绑定(bind)数据

标签 angularjs angular-material

我试图在搜索时将数据绑定(bind)到自动完成文本框。下面是我的代码。我可以从 api 获取数据,但它没有绑定(bind)到文本框。

  <md-autocomplete flex required flex-gt-sm="25"
                             md-input-name="autocompleteField"
                             md-input-minlength="2"
                             md-input-maxlength="18"
                             md-no-cache="noCache"
                             md-selected-item="selectedItem"
                             md-search-text="searchText"
                             md-items="item in querySearch(searchText)"
                             md-item-text="item.Customer_Nm"
                             md-floating-label="Customer">
                <md-item-template>
                    <span md-highlight-text="searchText">{{item.Customer_Nm}}</span>
                </md-item-template>

函数查询搜索(查询){

    $http({
        url: '/api/GateMoveAPI/GetCustomerData',
        method: 'GET',
        params: { sSearchText: query }
    }).success(function (data, status, headers, config) {

    return data;
});

}

提前致谢。

最佳答案

使用 $scope 属性来保存状态而不是函数。为此,您需要使用 md-search-text-change 触发搜索。您还可以使用md-delay限制搜索行为。有关更多详细信息,请参阅指令属性:https://material.angularjs.org/latest/api/directive/mdAutocomplete

更改您的代码如下:

HTML:

<md-autocomplete flex required flex-gt-sm="25"
                         md-input-name="autocompleteField"
                         md-input-minlength="2"
                         md-input-maxlength="18"
                         md-no-cache="noCache"
                         md-selected-item="selectedItem"
                         md-search-text="searchText"
                         md-items="item in items"
                         md-search-text-change = "querySearch(searchText)"
                         md-item-text="item.Customer_Nm"
                         md-floating-label="Customer">
<md-item-template>
  <span md-highlight-text="searchText">{{item.Customer_Nm}}</span>
</md-item-template>

JS

$scope.querySearch = function (query) {
  $http({
    url: '/api/GateMoveAPI/GetCustomerData',
    method: 'GET',
    params: { sSearchText: query }
  }).success(function (data, status, headers, config) {
    $scope.items = data;
  });
}

关于angularjs - md-autocomplete $http get 不绑定(bind)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36921943/

相关文章:

javascript - Angular.js - 在范围内使用函数的优雅方式

javascript - 如何删除先前绘制的 InfoVis 空间树

javascript - Protractor 中的 waitForElementsToBePresent

html - Angular Material : Styling mat-form-field inside mat-toolbar

Angular 8 : Make FormBuilder Accept Numbers Only with Range for Latitude and Longitude

angular - UAngular 5 : mat-table [dataSource] within *ngFor loop, 如何从数组传递数据源

angularjs - 将div内容拆分为pdf之类的页面

javascript - Angular Controller 功能不会将结果从一个功能返回到另一个功能

1000 行中的 Angular 6 MatTable 性能

angular - 从指令中创建/获取 TemplateRef