From cf06c7c530bbc7852d3b5ca39f8dc1b491190f96 Mon Sep 17 00:00:00 2001 From: Jakub Barbierik Date: Fri, 20 Nov 2015 14:39:00 +0100 Subject: [PATCH] watch directive config, vki reattach enabled --- src/angular-virtual-keyboard.js | 11 +++++++++++ src/vki-core.js | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/angular-virtual-keyboard.js b/src/angular-virtual-keyboard.js index 161a89f..e433e6d 100644 --- a/src/angular-virtual-keyboard.js +++ b/src/angular-virtual-keyboard.js @@ -111,6 +111,17 @@ angular.module('angular-virtual-keyboard', []) ngModelCtrl.$setViewValue(elements[0].value); }); }); + + scope.$watch('config', function(newValue, oldValue){ + if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) { + ngVirtualKeyboardService.attach(elements[0], scope.config, function() { + $timeout(function() { + ngModelCtrl.$setViewValue(elements[0].value); + }); + }); + } + }); + } }; }]); diff --git a/src/vki-core.js b/src/vki-core.js index 1db2703..ba1596e 100644 --- a/src/vki-core.js +++ b/src/vki-core.js @@ -187,7 +187,13 @@ var VKI = function(customConfig, layout, deadKeys, keyInputCallback) { * */ self.attachVki = function(elem) { - if (elem.getAttribute("VKI_attached")) return false; + if (elem.getAttribute("VKI_attached")) { + if(elem.nextSibling.className === "keyboardInputInitiator"){ + elem.nextSibling.remove(); + } else if(elem.previousSibling.className === "keyboardInputInitiator"){ + elem.previousSibling.remove(); + } + } if (self.VKI_imageURI) { var keybut = document.createElement('img'); keybut.src = self.VKI_imageURI;