md-autocomplete 找到数据,但下拉列表为空
md-autocomplete finds data, but dropdown is empty
md-autocomplete
用 findUser
方法找到数据,但下拉列表绝对是空的
如何解决提到的空下拉(甚至没有下拉)问题?
谢谢!
angular.module('orders', ['ngMaterial']);
angular.module('orders').config(function ($mdThemingProvider) {
$mdThemingProvider.theme('default')
.primaryPalette('green')
.accentPalette('grey');
});
angular.module('orders').controller('order', function ($scope, $http) {
var self = this;
self.data = null;
self.selectedItem = null;
self.searchText = null;
this.findUser = function (query) {
return $http({
method: 'POST',
url: apiUrl() + 'user',
data: query
}).then(function (data) { return self.data = data; });
};//...
这是我的完整 html 页面,请查看
<html>
<head>
<script src="1.5.0/angular.js"></script>
<script src="1.5.0/angular-aria.js"></script>
<script src="1.5.0/angular-animate.js"></script>
<script src="1.1.1/angular-material.min.js"></script>
<link rel="stylesheet"
href="1.1.1/angular-material.min.css" />
<script src="js/application.js"></script>
<script src="order/order.js"></script>
</head>
<body ng-app='orders' layout="column" ng-controller="order as ctrl">
<div flex="85">
<md-autocomplete flex="85" md-selected-item="ctrl.selectedItem" md-search-text="ctrl.searchText"
md-items="item in ctrl.findUser(ctrl.searchText)" md-item-text="ctrl.formatUser(item)" md-delay="300"
md-floating-label="Search supplier representative">
<div layout="row" class="item" layout-align="start center">
<span md-highlight-text="ctrl.searchText">{{item.lastName}}</span>
</div>
</md-autocomplete>
</div>
</body>
</html>
试试这个
在 md-autocomplete 的“ngModelChange”事件上调用 findUser() 方法。
创建一个新变量,假设 self.users=[]
并将来自服务器的数据分配给这个数组,然后在 html 上迭代这个数组。
findUser
函数返回的数据不正确,请改用:
this.findUser = function (query) {
return $http({
method: 'POST',
url: apiUrl() + 'user',
data: query
̶}̶)̶.̶t̶h̶e̶n̶(̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶(̶d̶a̶t̶a̶)̶ ̶{̶ ̶r̶e̶t̶u̶r̶n̶ ̶s̶e̶l̶f̶.̶d̶a̶t̶a̶ ̶=̶ ̶d̶a̶t̶a̶;̶ ̶}̶)̶;̶
}).then(function (response) { return self.data = response.data; });
};//...
$http.then
方法 returns 一个 response
对象,其中 data
是一个 属性。
有关详细信息,请参阅
md-autocomplete
用 findUser
方法找到数据,但下拉列表绝对是空的
如何解决提到的空下拉(甚至没有下拉)问题?
谢谢!
angular.module('orders', ['ngMaterial']);
angular.module('orders').config(function ($mdThemingProvider) {
$mdThemingProvider.theme('default')
.primaryPalette('green')
.accentPalette('grey');
});
angular.module('orders').controller('order', function ($scope, $http) {
var self = this;
self.data = null;
self.selectedItem = null;
self.searchText = null;
this.findUser = function (query) {
return $http({
method: 'POST',
url: apiUrl() + 'user',
data: query
}).then(function (data) { return self.data = data; });
};//...
这是我的完整 html 页面,请查看
<html>
<head>
<script src="1.5.0/angular.js"></script>
<script src="1.5.0/angular-aria.js"></script>
<script src="1.5.0/angular-animate.js"></script>
<script src="1.1.1/angular-material.min.js"></script>
<link rel="stylesheet"
href="1.1.1/angular-material.min.css" />
<script src="js/application.js"></script>
<script src="order/order.js"></script>
</head>
<body ng-app='orders' layout="column" ng-controller="order as ctrl">
<div flex="85">
<md-autocomplete flex="85" md-selected-item="ctrl.selectedItem" md-search-text="ctrl.searchText"
md-items="item in ctrl.findUser(ctrl.searchText)" md-item-text="ctrl.formatUser(item)" md-delay="300"
md-floating-label="Search supplier representative">
<div layout="row" class="item" layout-align="start center">
<span md-highlight-text="ctrl.searchText">{{item.lastName}}</span>
</div>
</md-autocomplete>
</div>
</body>
</html>
试试这个
在 md-autocomplete 的“ngModelChange”事件上调用 findUser() 方法。 创建一个新变量,假设 self.users=[] 并将来自服务器的数据分配给这个数组,然后在 html 上迭代这个数组。
findUser
函数返回的数据不正确,请改用:
this.findUser = function (query) {
return $http({
method: 'POST',
url: apiUrl() + 'user',
data: query
̶}̶)̶.̶t̶h̶e̶n̶(̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶(̶d̶a̶t̶a̶)̶ ̶{̶ ̶r̶e̶t̶u̶r̶n̶ ̶s̶e̶l̶f̶.̶d̶a̶t̶a̶ ̶=̶ ̶d̶a̶t̶a̶;̶ ̶}̶)̶;̶
}).then(function (response) { return self.data = response.data; });
};//...
$http.then
方法 returns 一个 response
对象,其中 data
是一个 属性。
有关详细信息,请参阅