diff --git a/src/ng/directive/input.js b/src/ng/directive/input.js index 3c09c0848f92..09e07d365e79 100644 --- a/src/ng/directive/input.js +++ b/src/ng/directive/input.js @@ -447,6 +447,7 @@ function textInputType(scope, element, attr, ctrl, $sniffer, $browser) { element.on('compositionend', function() { composing = false; + listener(); }); } diff --git a/test/ng/directive/inputSpec.js b/test/ng/directive/inputSpec.js index 668fa0b54a1e..b9f737ac0593 100644 --- a/test/ng/directive/inputSpec.js +++ b/test/ng/directive/inputSpec.js @@ -509,6 +509,17 @@ describe('input', function() { }); } + it('should update the model on "compositionend"', function() { + compileInput(''); + if (!(msie < 9)) { + browserTrigger(inputElm, 'compositionstart'); + changeInputValueTo('caitp'); + expect(scope.name).toBeUndefined(); + browserTrigger(inputElm, 'compositionend'); + expect(scope.name).toEqual('caitp'); + } + }); + describe('"change" event', function() { function assertBrowserSupportsChangeEvent(inputEventSupported) { // Force browser to report a lack of an 'input' event