fix(docs): handle the empty string in errorDisplay

This commit is contained in:
Ken Sheedlo 2013-08-01 15:19:06 -07:00
parent 705c9d95bc
commit 3c0c7165e2
2 changed files with 13 additions and 5 deletions

View file

@ -7,7 +7,7 @@ describe("errorDisplay", function () {
beforeEach(inject(function ($injector) { beforeEach(inject(function ($injector) {
var $rootScope = $injector.get('$rootScope'), var $rootScope = $injector.get('$rootScope'),
$compile = $injector.get('$compile'); $compile = $injector.get('$compile');
$location = $injector.get('$location'); $location = $injector.get('$location');
compileHTML = function (code) { compileHTML = function (code) {
@ -35,7 +35,7 @@ describe("errorDisplay", function () {
}); });
it('should interpolate a template with no parameters when search parameters are present', function () { it('should interpolate a template with no parameters when search parameters are present', function () {
var elm; var elm;
spyOn($location, 'search').andReturn({ p0: 'foobaz' }); spyOn($location, 'search').andReturn({ p0: 'foobaz' });
elm = compileHTML('<div error-display="This is a test"></div>'); elm = compileHTML('<div error-display="This is a test"></div>');
@ -43,7 +43,7 @@ describe("errorDisplay", function () {
}); });
it('should correctly interpolate search parameters', function () { it('should correctly interpolate search parameters', function () {
var elm; var elm;
spyOn($location, 'search').andReturn({ p0: '42' }); spyOn($location, 'search').andReturn({ p0: '42' });
elm = compileHTML('<div error-display="The answer is {0}"></div>'); elm = compileHTML('<div error-display="The answer is {0}"></div>');
@ -65,4 +65,12 @@ describe("errorDisplay", function () {
elm = compileHTML('<div error-display="This {0} is {1} on {2}"></div>'); elm = compileHTML('<div error-display="This {0} is {1} on {2}"></div>');
expect(elm).toInterpolateTo('This Fooooo is {1} on {2}'); expect(elm).toInterpolateTo('This Fooooo is {1} on {2}');
}); });
it('should correctly handle the empty string as an interpolation parameter', function () {
var elm;
spyOn($location, 'search').andReturn({ p0: 'test', p1: '' });
elm = compileHTML('<div error-display="This {0} is a {1}"></div>');
expect(elm).toInterpolateTo('This test is a ');
});
}); });

View file

@ -7,7 +7,7 @@ var docsApp = {
docsApp.controller.DocsVersionsCtrl = ['$scope', '$window', 'NG_VERSIONS', function($scope, $window, NG_VERSIONS) { docsApp.controller.DocsVersionsCtrl = ['$scope', '$window', 'NG_VERSIONS', function($scope, $window, NG_VERSIONS) {
$scope.versions = expandVersions(NG_VERSIONS); $scope.versions = expandVersions(NG_VERSIONS);
$scope.version = ($scope.version || angular.version.full).match(/^([\d\.]+\d+)/)[1]; //match only the number $scope.version = ($scope.version || angular.version.full).match(/^([\d\.]+\d+)/)[1]; //match only the number
$scope.jumpToDocsVersion = function(value) { $scope.jumpToDocsVersion = function(value) {
var isLastStable, var isLastStable,
version, version,
@ -320,7 +320,7 @@ docsApp.directive.errorDisplay = ['$location', function ($location) {
formatArgs = [attrs.errorDisplay], formatArgs = [attrs.errorDisplay],
i; i;
for (i = 0; search['p'+i]; i++) { for (i = 0; angular.isDefined(search['p'+i]); i++) {
formatArgs.push(search['p'+i]); formatArgs.push(search['p'+i]);
} }
element.text(interpolate.apply(null, formatArgs)); element.text(interpolate.apply(null, formatArgs));