ng-textarea-enter
Advanced tools
Comparing version 0.1.6 to 0.2.1
{ | ||
"name": "ng-textarea-enter", | ||
"version": "0.1.6", | ||
"version": "0.2.1", | ||
"homepage": "https://github.com/ArunMichaelDsouza/ng-textarea-enter", | ||
@@ -5,0 +5,0 @@ "authors": [ |
/* | ||
ng-textarea-enter v0.1.6 | ||
ng-textarea-enter v0.2.1 | ||
Copyright (c) 2016 Arun Michael Dsouza (amdsouza92@gmail.com) | ||
@@ -7,2 +7,2 @@ Licence: MIT | ||
*/ | ||
"use strict";angular.module("ngTextareaEnter",[]).directive("ngTextareaEnter",function(){return{restrict:"A",link:function(a,b,c){b.bind("keydown",function(d){var e=d.keyCode||d.which;13===e&&"textarea"==b[0].type&&void 0!=a[c.ngModel]&&""!=a[c.ngModel]&&(d.shiftKey||d.ctrlKey||d.altKey||(d.preventDefault(),a.$apply(c.ngTextareaEnter)))})}}}); | ||
"use strict";angular.module("ngTextareaEnter",[]).directive("ngTextareaEnter",function(){return{restrict:"A",link:function(a,b,c){b.bind("keydown",function(d){function e(a,b,c){var d,e;for(d=0,b=b.split("."),e=b.length;d<e;d++){if(!a||"object"!=typeof a)return c;a=a[b[d]]}return void 0===a?c:a}var f=d.keyCode||d.which;if(13===f&&"textarea"==b[0].type){var g=e(a,c.ngModel);void 0!==g&&""!==g&&(d.shiftKey||d.ctrlKey||d.altKey||(d.preventDefault(),a.$apply(c.ngTextareaEnter)))}})}}}); |
{ | ||
"name": "ng-textarea-enter", | ||
"version": "0.1.6", | ||
"version": "0.2.1", | ||
"description": "AngularJS Module to enable action trigger for textarea on pressing the 'enter' key", | ||
@@ -5,0 +5,0 @@ "main": "build/ng-textarea-enter.min.js", |
@@ -18,3 +18,3 @@ # ng-textarea-enter [![npm version](https://badge.fury.io/js/ng-textarea-enter.svg)](https://badge.fury.io/js/ng-textarea-enter) [![NPM Downloads](https://img.shields.io/npm/dm/ng-textarea-enter.svg?style=flat-square)](https://www.npmjs.com/package/ng-textarea-enter) [![Latest Stable Version](https://img.shields.io/bower/v/ng-textarea-enter.svg?style=flat-square)](http://bower.io/search/?q=ng-textarea-enter) | ||
```html | ||
https://cdn.jsdelivr.net/angular.textarea-enter/0.1.6/ng-textarea-enter.min.js | ||
https://cdn.jsdelivr.net/angular.textarea-enter/0.2.1/ng-textarea-enter.min.js | ||
``` | ||
@@ -21,0 +21,0 @@ |
/* | ||
ng-textarea-enter v0.1.6 | ||
ng-textarea-enter v0.2.1 | ||
Copyright (c) 2016 Arun Michael Dsouza (amdsouza92@gmail.com) | ||
@@ -9,30 +9,52 @@ Licence: MIT | ||
angular.module('ngTextareaEnter', []).directive('ngTextareaEnter', function() { | ||
return { | ||
restrict: 'A', | ||
link: function(scope, elem, attrs) { | ||
return { | ||
restrict: 'A', | ||
link: function(scope, elem, attrs) { | ||
// Detecting key down event | ||
elem.bind('keydown', function(event) { | ||
var code = event.keyCode || event.which; | ||
// Detecting key down event | ||
elem.bind('keydown', function(event) { | ||
// Detecting enter key press | ||
if (code === 13) { | ||
var code = event.keyCode || event.which; | ||
// Checking element to be textarea | ||
if(elem[0].type == 'textarea') { | ||
// Detecting enter key press | ||
if (code === 13) { | ||
// Checking scope model to be valid | ||
if(scope[attrs.ngModel] != undefined && scope[attrs.ngModel] != '') { | ||
// Checking element to be textarea | ||
if (elem[0].type == 'textarea') { | ||
// Detecting shift/ctrl/alt key press | ||
if (!event.shiftKey && !event.ctrlKey && !event.altKey) { | ||
event.preventDefault(); | ||
scope.$apply(attrs.ngTextareaEnter); | ||
} | ||
} | ||
} | ||
} | ||
}); | ||
} | ||
} | ||
}); | ||
// used to get path for controllerAs syntax | ||
function path(obj, path, def) { | ||
var i, len; | ||
for (i = 0, path = path.split('.'), len = path.length; i < len; i++) { | ||
if (!obj || typeof obj !== 'object') return def; | ||
obj = obj[path[i]]; | ||
} | ||
if (obj === undefined) return def; | ||
return obj; | ||
} | ||
// Determine scope model | ||
var ngModel = path(scope, attrs.ngModel); | ||
// Checking scope model to be valid | ||
if (ngModel !== undefined && ngModel !== '') { | ||
// Detecting shift/ctrl/alt key press | ||
if (!event.shiftKey && !event.ctrlKey && !event.altKey) { | ||
event.preventDefault(); | ||
scope.$apply(attrs.ngTextareaEnter); | ||
} | ||
} | ||
} | ||
} | ||
}); | ||
} | ||
} | ||
}); |
9845
99