【发布时间】:2017-11-09 08:59:19
【问题描述】:
我在 AngularJS 应用程序中使用材料的 md-contact-chips 组件和自动完成功能。我是 Angular 的新手,我试图找出如何在开始输入关键字之前显示整个选项列表,但只是在单击输入之后。这是代码的骨架:
<html lang="en" >
<head>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
<script language="javascript">
angular
.module('firstApplication', ['ngMaterial'])
.controller('contactsChipController', contactsChipController);
function contactsChipController ($scope) {
var self = this;
var contacts = [
'Roberto Karlos',
'Bob Crestor',
'Nigel Rick',
'Narayana Garner',
'Anita Gros',
'Megan Smith',
'Tsvetko Metzger',
'Hector Simek',
'James Roody'
];
self.filterSelected = true;
self.querySearch = querySearch;
self.allContacts = loadObjectsList(contacts);
self.contacts = [self.allContacts[0]];
function querySearch (query, loadedList) {
var results = query ?
loadedList.filter(createFilterFor(query)) : [];
return results;
}
function createFilterFor(query) {
var lowercaseQuery = angular.lowercase(query);
return function filterFn(object) {
return (object._lowername.indexOf(lowercaseQuery) != -1);;
};
}
function loadObjectsList(objectsList) {
return objectsList.map(function (c, index) {
var filteredObject = {
name: c,
};
filteredObject._lowername = filteredObject.name.toLowerCase();
return filteredObject;
});
}
}
</script>
</head>
<body ng-app="firstApplication">
<div ng-controller="contactsChipController as ctrl" layout="column" ng-cloak>
<md-content class="md-padding autocomplete" layout="column">
<md-contact-chips
ng-model="ctrl.contacts"
md-contacts="ctrl.querySearch($query, ctrl.allContacts)"
md-contact-name="name"
md-require-match="true"
md-highlight-flags="i"
filter-selected="ctrl.filterSelected"
placeholder="To">
</md-contact-chips>
<md-list class="fixedRows">
<md-list-item class="contact-item" ng-repeat="(index, contact) in ctrl.allContacts"
ng-if="ctrl.contacts.indexOf(contact) < 0">
<span>{{contact.name}}</span>
</md-list-item>
</md-list>
</md-content>
</div>
</body>
</html>
我如何在本地实现这个?
干杯
【问题讨论】:
标签: angularjs autocomplete angular-material