Material Angular - Chips
o md-chips, uma diretiva angular, é usado como um componente especial chamado Chip e pode ser usado para representar um pequeno conjunto de informações, por exemplo, um contato, tags, etc. Um modelo personalizado pode ser usado para renderizar o conteúdo de um chip. Isso pode ser alcançado especificando ummd-chip-template elemento que tem o conteúdo personalizado como filho de chips MD.
Atributos
A tabela a seguir lista os parâmetros e a descrição dos diferentes atributos de md-chips.
Sr. Não | Parâmetro e Descrição |
---|---|
1 | * ng-model Expressão angular atribuível para vinculação de dados. |
2 | * ng-model Um modelo para vincular a lista de itens. |
3 | * md-transform-chip Uma expressão no formato myFunction ($ chip) que, quando chamada, espera um dos seguintes valores de retorno -
|
4 | * md-require-match Se verdadeiro, e o modelo de chips contém um autocompletar, permite apenas a seleção de chips predefinidos (ou seja, você não pode adicionar novos). |
5 | placeholder Texto de espaço reservado que será encaminhado para a entrada. |
6 | secondary-placeholder Texto de espaço reservado que será encaminhado para a entrada, exibido quando houver pelo menos um item na lista. |
7 | readonly Desativa a manipulação de lista (exclusão ou adição de itens de lista), ocultando a entrada e os botões de exclusão. |
8 | md-on-add Uma expressão que será chamada quando um chip for adicionado. |
9 | md-on-remove Uma expressão que será chamada quando um chip for removido. |
10 | md-on-select Uma expressão que será chamada quando um chip for selecionado. |
11 | delete-hint Uma string lida por leitores de tela instruindo os usuários que pressionar a tecla delete removerá o chip. |
12 | delete-button-label Um rótulo para o Deletebotão. Também oculto e lido por leitores de tela. |
13 | md-separator-keys Uma série de códigos-chave usados para separar chips. |
Exemplo
O exemplo a seguir mostra o uso do md-chips diretiva e também o uso de chips angulares.
am_chips.htm
<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>
<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;
// Lists of fruit names and Vegetable objects
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>
Resultado
Verifique o resultado.