diff --git a/packages/ember-routing-htmlbars/lib/keywords/link-to.js b/packages/ember-routing-htmlbars/lib/keywords/link-to.js index 8c4cacdc13c..5e0011f579c 100644 --- a/packages/ember-routing-htmlbars/lib/keywords/link-to.js +++ b/packages/ember-routing-htmlbars/lib/keywords/link-to.js @@ -3,7 +3,7 @@ @submodule ember-routing-htmlbars */ -import { readArray, readHash } from 'ember-metal/streams/utils'; +import { readArray } from 'ember-metal/streams/utils'; import Ember from 'ember-metal/core'; // assert import merge from 'ember-metal/merge'; @@ -286,7 +286,9 @@ export default { }, render(morph, env, scope, params, hash, template, inverse, visitor) { - var attrs = merge({}, readHash(hash)); + var attrs = merge({}, hash); + + // TODO: Rewrite link-to to use arbitrary length positional params. attrs.params = readArray(params); // Used for deprecations (to tell the user what view the deprecated syntax diff --git a/packages/ember/tests/helpers/link_to_test.js b/packages/ember/tests/helpers/link_to_test.js index d8eaa90281a..a33ba0d6d8f 100644 --- a/packages/ember/tests/helpers/link_to_test.js +++ b/packages/ember/tests/helpers/link_to_test.js @@ -286,6 +286,33 @@ QUnit.test('The {{link-to}} helper supports a custom activeClass', function() { equal(Ember.$('#about-link:not(.active)', '#qunit-fixture').length, 1, 'The other link was rendered without active class'); }); +QUnit.test('The {{link-to}} helper supports \'classNameBindings\' with custom values [GH #11699]', function() { + Ember.TEMPLATES.index = compile('

Home

{{#link-to \'about\' id=\'about-link\' classNameBindings=\'foo:foo-is-true:foo-is-false\'}}About{{/link-to}}'); + + Router.map(function() { + this.route('about'); + }); + + App.IndexController = Ember.Controller.extend({ + foo: false + }); + + bootApplication(); + + Ember.run(function() { + router.handleURL('/'); + }); + + equal(Ember.$('#about-link.foo-is-false', '#qunit-fixture').length, 1, 'The about-link was rendered with the falsy class'); + + var controller = container.lookup('controller:index'); + Ember.run(function() { + controller.set('foo', true); + }); + + equal(Ember.$('#about-link.foo-is-true', '#qunit-fixture').length, 1, 'The about-link was rendered with the truthy class after toggling the property'); +}); + QUnit.test('The {{link-to}} helper supports leaving off .index for nested routes', function() { Router.map(function() { this.route('about', function() {