diff --git a/src/Angular.js b/src/Angular.js index 386682a325e7..11ce5cf5be1a 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -959,7 +959,9 @@ function fromJson(json) { function toBoolean(value) { - if (value && value.length !== 0) { + if (typeof value === 'function') { + value = true; + } else if (value && value.length !== 0) { var v = lowercase("" + value); value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == 'n' || v == '[]'); } else { diff --git a/test/ng/directive/ngShowHideSpec.js b/test/ng/directive/ngShowHideSpec.js index 4a8e55da386e..ee83c31b65a9 100644 --- a/test/ng/directive/ngShowHideSpec.js +++ b/test/ng/directive/ngShowHideSpec.js @@ -20,6 +20,16 @@ describe('ngShow / ngHide', function() { })); + // https://github.com/angular/angular.js/issues/5414 + it('should show if the expression is a function with a single argument', inject(function($rootScope, $compile) { + element = jqLite('
'); + element = $compile(element)($rootScope); + $rootScope.exp = function(){}; + $rootScope.$digest(); + expect(element).toBeShown(); + })); + + it('should make hidden element visible', inject(function($rootScope, $compile) { element = jqLite(''); element = $compile(element)($rootScope);