<!DOCTYPE html>
<html>
<head>
<link data-require="bootstrap-css@3.3.6" data-semver="3.3.6" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" />
<link data-require="font-awesome@*" data-semver="4.5.0" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.css" />
<script data-require="angular.js@1.5.3" data-semver="1.5.3" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script>
<script data-require="jquery@*" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script data-require="ui-bootstrap@*" data-semver="1.3.2" src="https://cdn.rawgit.com/angular-ui/bootstrap/gh-pages/ui-bootstrap-tpls-1.3.2.js"></script>
<link rel="stylesheet" href="chips.css" />
<script src="main.module.js"></script>
<script src="chips.module.js"></script>
</head>
<body class="container" ng-app="mainModule">
<div ng-controller="mainController as ctrl">
<div class="row">
<form class="form-inline">
<div class="form-group col-xs-6 col-sm-6 col-md-6">
<input type="text"
class="form-control"
id="exampleInputName2"
placeholder="Insert Category"
ng-model="ctrl.insert">
</div>
<button type="submit" class="btn btn-default" ng-click="ctrl.add(ctrl.insert)">
Validate
</button>
</form>
</div>
<ul class="list-inline" >
<li class="listItem" ng-repeat="elem in ctrl.items">
<bl-chips text="{{elem}}" close="ctrl.close(text)"></bl-chips>
</li>
</ul>
</div>
</body>
</html>
'use strict';
(function(angular){
var app = angular.module('mainModule', ['chips']);
app.controller('mainController',mainController);
function mainController($filter){
var self = this;
init();
function init(){
self.items = ['test 1'];
self.insert = '';
}
self.add = add;
self.close = close;
function add(input){
if(self.items.indexOf(input) === -1
&& self.insert !== ''){
self.items.push(input);
self.insert = '';
} else {
console.log('presente');
}
}
function close(text){
self.items = $filter('filter')(self.items, function(value){
return value != text;
});
}
}
})(window.angular);
/* Styles go here */
.chips{
border-radius: 15px !important;
font-size: 20px;
width: auto;
}
.chipsContainer{
margin-top: 10px;
margin-bottom: 10px;
}
.pointer{
cursor: pointer;
}
'use strict';
(function(angular){
var _template = 'chips.html';
var app = angular.module('chips', ['ui.bootstrap']);
app.component('blChips',{
restrict: 'E',
bindings: {
text: '@',
close: '&'
},
templateUrl: _template,
controller: ChipsController,
controllerAs: 'c'
});
function ChipsController(){
var self = this;
self.$onInit = init;
function init(){}
}
})(window.angular);
<div class="chipsContainer">
<div class="label label-default chips">
{{c.text}}
<i class="fa fa-times-circle pointer" ng-click="c.close({text: c.text})"></i>
</div>
</div>