md-autocomplete 将结果显示为列表而不是下拉列表
md-autocomplete displays results as a list instead of dropdown
我正在尝试使用 Angular Material md-autocomplete 标签在我的表单中显示邮政编码建议。我正在调用一个异步服务来获取建议并填充结果。我使用 https://material.angularjs.org/latest/api/directive/mdAutocomplete 上的演示代码作为参考。但是,结果在我的表格下方显示为 ul-li。有人可以帮我弄清楚可能出了什么问题吗?我已经在我的 html 中包含了所需的文件。
以下是代码片段:
HTML
<!-- Angular Material requires Angular.js Libraries -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular-messages.min.js"></script>
<!-- Angular Material Library -->
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.12/angular-material.min.js"></script>
在表单中输入元素
<md-autocomplete flex
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="x in query(searchText)"
md-item-display="x.display"
md-clear-button="false">
<md-item-template>
<span md-highlight-text="searchText">{{x}}</span>
</md-item-template>
</md-autocomplete>
AngularJS 控制器
var app = angular.module("App", ['ngMaterial', 'ngMessages']);
app.controller("MainController", function ($scope, $http) {
$scope.query = function(searchText) {
return $http.get(BACKEND_URL + '/items/' + searchText)
.then(function(response) {
return response.data;
});
};
});
我正在从后端调用所需的 api 并将响应作为数组获取。它也在控制台中打印。但是,最终结果会在我的表单下方显示为列表,如下所示:
您应该添加 angularjs material css 文件。
<link rel="stylesheet" href="//rawgit.com/angular/bower-material/master/angular-material.css">
我正在尝试使用 Angular Material md-autocomplete 标签在我的表单中显示邮政编码建议。我正在调用一个异步服务来获取建议并填充结果。我使用 https://material.angularjs.org/latest/api/directive/mdAutocomplete 上的演示代码作为参考。但是,结果在我的表格下方显示为 ul-li。有人可以帮我弄清楚可能出了什么问题吗?我已经在我的 html 中包含了所需的文件。 以下是代码片段:
HTML
<!-- Angular Material requires Angular.js Libraries -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular-messages.min.js"></script>
<!-- Angular Material Library -->
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.12/angular-material.min.js"></script>
在表单中输入元素
<md-autocomplete flex
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="x in query(searchText)"
md-item-display="x.display"
md-clear-button="false">
<md-item-template>
<span md-highlight-text="searchText">{{x}}</span>
</md-item-template>
</md-autocomplete>
AngularJS 控制器
var app = angular.module("App", ['ngMaterial', 'ngMessages']);
app.controller("MainController", function ($scope, $http) {
$scope.query = function(searchText) {
return $http.get(BACKEND_URL + '/items/' + searchText)
.then(function(response) {
return response.data;
});
};
});
我正在从后端调用所需的 api 并将响应作为数组获取。它也在控制台中打印。但是,最终结果会在我的表单下方显示为列表,如下所示:
您应该添加 angularjs material css 文件。
<link rel="stylesheet" href="//rawgit.com/angular/bower-material/master/angular-material.css">