An AngularJS+Bootstrap Simple Chat Directive
"dependencies": { "angularjs": "~1.3.8", "bootstrap": "~3.3.1", "angularjs-scroll-glue": "~0.0.1" }
bower install --save angular-bootstrap-simple-chat
<!-- Dependencies --> <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css"> <script src="bower_components/angularjs/angular.js"></script> <!-- Simple Chat --> <link rel="stylesheet" href="bower_components/angular-bootstrap-simple-chat/src/css/style.css"> <script src="bower_components/angular-bootstrap-simple-chat/src/scripts/index.js"></script>
angular.module('app', ['irontec.simpleChat']);
/** VIEW **/ <irontec-simple-chat messages="vm.messages" username="vm.username" input-placeholder-text="You can write here" submit-button-text="Send your message" title="Super Awesome Chat" theme="material" submit-function="vm.sendMessage" visible="vm.visible" expand-on-new="vm.expandOnNew"> </irontec-simple-chat>
/** CONTROLLER **/ angular.module('app').controller('Shell', Shell); function Shell() { var vm = this; vm.messages = [ { 'username': 'username1', 'content': 'Hi!' }, { 'username': 'username2', 'content': 'Hello!' }, { 'username': 'username2', 'content': 'Hello!' }, { 'username': 'username2', 'content': 'Hello!' }, { 'username': 'username2', 'content': 'Hello!' }, { 'username': 'username2', 'content': 'Hello!' } ]; vm.username = 'username1'; vm.sendMessage = function(message, username) { if(message && message !== '' && username) { vm.messages.push({ 'username': username, 'content': message }); } }; vm.visible = true; vm.expandOnNew = true; }
- messages: array of messages to show. Message Format: {username: 'username', content: 'My message'}
- username: username of the user using the app
- input-placeholder-text: String, text in the input placeholder
- title: String, text in the chat top title
- theme: String, theme used for the chat
- submit-function: Function in the controller to be launched on the new message submit. It receives two params: message & username
- visible: Boolean, controls visibility on the page (required)
- First, add the themes stylesheet to your index.html
<link rel="stylesheet" href="bower_components/angular-bootstrap-simple-chat/src/css/themes.css">
- Define the theme you will use with the theme property
- List of themes:
- irontec
- material