diff --git a/packages/ember-routing-views/lib/views/link.js b/packages/ember-routing-views/lib/views/link.js index 9dc71eec1a3..88ee4725e41 100644 --- a/packages/ember-routing-views/lib/views/link.js +++ b/packages/ember-routing-views/lib/views/link.js @@ -371,7 +371,7 @@ var LinkComponent = EmberComponent.extend({ if (lastParam && lastParam.isQueryParams) { params.pop(); } - let onlyQueryParamsSupplied = (params.length === 0); + let onlyQueryParamsSupplied = (this.attrs.hasBlock ? params.length === 0 : params.length === 1); if (onlyQueryParamsSupplied) { var appController = this.container.lookup('controller:application'); if (appController) { diff --git a/packages/ember/tests/helpers/link_to_test.js b/packages/ember/tests/helpers/link_to_test.js index ef35883557f..caf0f57c195 100644 --- a/packages/ember/tests/helpers/link_to_test.js +++ b/packages/ember/tests/helpers/link_to_test.js @@ -1372,7 +1372,7 @@ QUnit.test('{{link-to}} populates href with fully supplied query param values', equal(Ember.$('#the-link').attr('href'), '/?bar=NAW&foo=456', 'link has right href'); }); -QUnit.test('{{link-to}} with only query-params updates when route changes', function() { +QUnit.test('{{link-to}} with only query-params and a block updates when route changes', function() { Router.map(function() { this.route('about'); }); @@ -1405,3 +1405,37 @@ QUnit.test('{{link-to}} with only query-params updates when route changes', func }); equal(Ember.$('#the-link').attr('href'), '/about?bar=NAW&foo=456', 'link has right href'); }); + +QUnit.test('Block-less {{link-to}} with only query-params updates when route changes', function() { + Router.map(function() { + this.route('about'); + }); + + if (isEnabled('ember-routing-route-configured-query-params')) { + App.ApplicationRoute = Ember.Route.extend({ + queryParams: { + foo: { + defaultValue: '123' + }, + bar: { + defaultValue: 'yes' + } + } + }); + } else { + App.ApplicationController = Ember.Controller.extend({ + queryParams: ['foo', 'bar'], + foo: '123', + bar: 'yes' + }); + } + + Ember.TEMPLATES.application = compile('{{link-to "Index" (query-params foo=\'456\' bar=\'NAW\') id=\'the-link\'}}'); + bootApplication(); + equal(Ember.$('#the-link').attr('href'), '/?bar=NAW&foo=456', 'link has right href'); + + Ember.run(function() { + router.handleURL('/about'); + }); + equal(Ember.$('#the-link').attr('href'), '/about?bar=NAW&foo=456', 'link has right href'); +});