Angular Material - Chips 小部件
md-chips 是一个 Angular 指令,用作称为 Chip 的特殊组件,可用于表示一小组信息,例如联系人、标签等。自定义模板可用于呈现 Chip 的内容。 这可以通过将具有自定义内容的 md-chip-template 元素指定为 md-chips 的子元素来实现。
属性
下表列出了md-chips的参数及不同属性的说明。
Sr.No | 参数和描述 |
---|---|
1 | * ng-model 可分配 angular 表达式进行数据绑定。 |
2 | * ng-model 将项目列表绑定到的模型。 |
3 | * md-transform-chip
myFunction($chip) 形式的表达式,在调用时需要以下返回值之一 −
|
4 | * md-require-match 如果为 true,并且筹码模板包含自动完成功能,则仅允许选择预定义的 chips(即您无法添加新的 chips)。 |
5 | placeholder 将转发到输入的占位符文本。 |
6 | secondary-placeholder 将转发到输入的占位符文本,当列表中至少有一项时显示。 |
7 | readonly 禁用列表操作(删除或添加列表项),隐藏输入和删除按钮。 |
8 | md-on-add 添加 chip 时将调用的表达式。 |
9 | md-on-remove 当 chip 被移除时将调用的表达式。 |
10 | md-on-select 选择一个 chip 时将调用的表达式。 |
11 | delete-hint 屏幕阅读器读取的字符串,指示用户按删除键将删除 chip。 |
12 | delete-button-label 删除按钮的标签。 也可以被屏幕阅读器隐藏和读取。 |
13 | md-separator-keys 用于分隔 chip 的按键代码数组。 |
示例
以下示例展示了 md-chips 指令的使用以及 angular chips 的使用。
am_chips.html
<html lang = "en"> <head> <link rel = "stylesheet" href = "https://www.w3ccoo.com/lib/angular_material/1.0.0/angular-material.min.css"> <script src = "https://cdn.staticfile.org/angular.js/1.4.8/angular.min.js"></script> <script src = "https://cdn.staticfile.org/angular.js/1.4.8/angular-animate.min.js"></script> <script src = "https://cdn.staticfile.org/angular.js/1.4.8/angular-aria.min.js"></script> <script src = "https://cdn.staticfile.org/angular.js/1.4.8/angular-messages.min.js"></script> <script src = "https://www.w3ccoo.com/lib/angular_material/1.0.0/angular-material.min.js"></script> <link rel = "stylesheet" href = "https://fonts.googleapis.com/icon?family=Material+Icons"> <style> .closeButton { position: relative; height: 24px; width: 24px; line-height: 30px; text-align: center; background: rgba(0, 0, 0, 0.3); border-radius: 50%; border: none; box-shadow: none; padding: 0; margin: 3px; transition: background 0.15s linear; display: block; } </style> <script language = "javascript"> angular .module('firstApplication', ['ngMaterial']) .controller('chipController', chipController); function chipController ($scope) { var self = this; self.readonly = false; // 水果名称和蔬菜对象列表 self.fruitNames = ['Apple', 'Banana', 'Orange']; self.roFruitNames = angular.copy(self.fruitNames); self.tags = []; self.vegObjs = [ { 'name' : 'Broccoli', 'type' : 'Brassica' }, { 'name' : 'Cabbage', 'type' : 'Brassica' }, { 'name' : 'Carrot', 'type' : 'Umbelliferous' } ]; self.newVeg = function(chip) { return { name: chip, type: 'unknown' }; }; } </script> </head> <body ng-app = "firstApplication"> <div ng-controller = "chipController as ctrl" layout = "column" ng-cloak> <md-chips ng-model = "ctrl.fruitNames" readonly = "ctrl.readonly"> </md-chips> <md-chips class = "custom-chips" ng-model = "ctrl.vegObjs" readonly = "ctrl.readonly" md-transform-chip = "ctrl.newVeg($chip)"> <md-chip-template> <span> <strong>[{{$index}}] {{$chip.name}}</strong> <em>({{$chip.type}})</em> </span> </md-chip-template> <button md-chip-remove class = "md-primary closeButton"> <md-icon md-svg-icon = "md-close"></md-icon> </button> </md-chips> <br/> <md-checkbox ng-model = "ctrl.readonly">Readonly</md-checkbox> </div> </body> </html>
结果
验证结果。
❮ angular_material_widgets.html