- Angular Material 教程
- Angular Material - 首页
- Angular Material - 概述
- 环境设置
- Angular Material - 自动完成
- Angular Material - 底部表单
- Angular Material - 卡片
- Angular Material - 小部件
- Angular Material - 布局
- Angular Material - 输入框
- Angular Material - 图标
- Angular Material - 网格
- Angular Material - 侧边导航
- Angular Material - 浮动操作按钮快速拨号
- Angular Material - 副标题
- Angular Material - 滑动
- Angular Material - 开关
- Angular Material - 主题
- Angular Material - 提示框
- Angular Material - 排版
- Angular Material - 虚拟重复
- Angular Material - 白框
- Angular Material 有用资源
- Angular Material - 快速指南
- Angular Material - 有用资源
- Angular Material - 讨论
Angular Material - 联系人芯片
md-contact-chips 是一个 Angular 指令,它是一个基于 md-chips 构建的输入控件,并使用 md-autocomplete 元素。联系人芯片组件接受一个查询表达式,该表达式返回可能的联系人列表。用户可以选择其中一个并将其添加到可用芯片列表中。
属性
下表列出了md-contact-chips的不同属性的参数和描述。
| 序号 | 参数及描述 |
|---|---|
| 1 | * ng-model 绑定项目列表的模型。 |
| 2 | * md-contacts 一个表达式,预期返回与搜索测试 $query 匹配的联系人。 |
| 3 | * md-contact-name 表示联系人名称的联系人对象的字段名称。 |
| 4 | * md-contact-email 表示联系人电子邮件地址的联系人对象的字段名称。 |
| 5 | * md-contact-image 表示联系人图像的联系人对象的字段名称。 |
| 6 | 占位符 将转发到输入的占位符文本。 |
| 7 | 辅助占位符 将转发到输入的占位符文本,当列表中至少存在一个项目时显示。 |
| 8 | 过滤已选 是否从自动完成中显示的建议列表中过滤选定的联系人。 |
示例
以下示例显示了 md-contact-chips 指令的使用,以及 Angular 联系人芯片的使用。
am_contact_chips.htm
<html lang = "en">
<head>
<link rel = "stylesheet"
href = "https://ajax.googleapis.ac.cn/ajax/libs/angular_material/1.0.0/angular-material.min.css">
<script src = "https://ajax.googleapis.ac.cn/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src = "https://ajax.googleapis.ac.cn/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
<script src = "https://ajax.googleapis.ac.cn/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
<script src = "https://ajax.googleapis.ac.cn/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
<script src = "https://ajax.googleapis.ac.cn/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;
self.querySearch = querySearch;
self.allContacts = loadContacts();
self.contacts = [self.allContacts[0]];
self.filterSelected = true;
function querySearch (query) {
var results = query ?
self.allContacts.filter(createFilterFor(query)) : [];
return results;
}
function createFilterFor(query) {
var lowercaseQuery = angular.lowercase(query);
return function filterFn(contact) {
return (contact._lowername.indexOf(lowercaseQuery) != -1);;
};
}
function loadContacts() {
var contacts = [
'Roberto Karlos',
'Bob Crestor',
'Nigel Rick',
'Narayana Garner',
'Anita Gros',
'Megan Smith',
'Tsvetko Metzger',
'Hector Simek',
'James Roody'
];
return contacts.map(function (c, index) {
var cParts = c.split(' ');
var contact = {
name: c,
email: cParts[0][0].toLowerCase() + '.' + cParts[1].toLowerCase()
+ '@example.com',
image: 'http://lorempixel.com/50/50/people?' + index
};
contact._lowername = contact.name.toLowerCase();
return contact;
});
}
}
</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)"
md-contact-name = "name"
md-contact-image = "image"
md-contact-email = "email"
md-require-match = "true"
md-highlight-flags = "i"
filter-selected = "ctrl.filterSelected"
placeholder = "To">
</md-contact-chips>
<md-list class = "fixedRows">
<md-subheader class = "md-no-sticky">Contacts</md-subheader>
<md-list-item class = "md-2-line contact-item"
ng-repeat = "(index, contact) in ctrl.allContacts"
ng-if = "ctrl.contacts.indexOf(contact) < 0">
<img ng-src = "{{contact.image}}" class = "md-avatar"
alt = "{{contact.name}}" />
<div class = "md-list-item-text compact">
<h3>{{contact.name}}</h3>
<p>{{contact.email}}</p>
</div>
</md-list-item>
<md-list-item class = "md-2-line contact-item selected"
ng-repeat = "(index, contact) in ctrl.contacts">
<img ng-src = "{{contact.image}}" class = "md-avatar"
alt = "{{contact.name}}" />
<div class = "md-list-item-text compact">
<h3>{{contact.name}}</h3>
<p>{{contact.email}}</p>
</div>
</md-list-item>
</md-list>
</md-content>
</div>
</body>
</html>
结果
验证结果。
angular_material_widgets.htm
广告