diff --git a/transforms/angle-brackets/transform.js b/transforms/angle-brackets/transform.js
index c4a2ade9d..ea2b1bb43 100755
--- a/transforms/angle-brackets/transform.js
+++ b/transforms/angle-brackets/transform.js
@@ -205,10 +205,14 @@ function transformLinkToAttrs(params) {
attributes = [firstParamOutput];
} else if (params.length === 2) {
// @route and @model param
-
// eslint-disable-next-line no-unused-vars
let [_, secondParamInput] = params;
if (secondParamInput.type === 'SubExpression') {
+ let htmlAttrs;
+ if (secondParamInput.path.original === 'html-attributes') {
+ htmlAttrs = secondParamInput.hash.pairs;
+ }
+
let _queryParamOrModel;
if (isQueryParam(secondParamInput)) {
_queryParamOrModel = b.attr(
@@ -216,12 +220,17 @@ function transformLinkToAttrs(params) {
b.mustache(b.path('hash'), [], secondParamInput.hash)
);
} else {
- _queryParamOrModel = b.attr(
- '@model',
- b.mustache(secondParamInput.path, secondParamInput.params)
- );
+ if (secondParamInput.path.original !== 'html-attributes') {
+ _queryParamOrModel = b.attr(
+ '@model',
+ b.mustache(secondParamInput.path, secondParamInput.params)
+ );
+ }
+ }
+ attributes = _queryParamOrModel ? [firstParamOutput, _queryParamOrModel] : [firstParamOutput];
+ if (htmlAttrs) {
+ attributes = [...attributes, ...htmlAttrs];
}
- attributes = [firstParamOutput, _queryParamOrModel];
} else {
let _modelParam = b.attr('@model', transformModelParams(secondParamInput));
attributes = [firstParamOutput, _modelParam];
diff --git a/transforms/angle-brackets/transform.test.js b/transforms/angle-brackets/transform.test.js
index b4607a831..78d0b42f5 100644
--- a/transforms/angle-brackets/transform.test.js
+++ b/transforms/angle-brackets/transform.test.js
@@ -382,6 +382,7 @@ test('link-to', () => {
{{#link-to "user" this.first this.second (query-params foo="baz")}}Show{{/link-to}}
{{#link-to "user" this.first}}Show{{/link-to}}
{{#link-to "user" this.first (query-params foo="baz")}}Show{{/link-to}}
+ {{#link-to "categories" (html-attributes id="main-bar" class="large" data-foo="123")}}{{svg-jar "crate"}}{{/link-to}}
`;
expect(runTest('link-to.hbs', input)).toMatchInlineSnapshot(`
@@ -393,6 +394,7 @@ test('link-to', () => {
Show
Show
Show
+ {{svg-jar \\"crate\\"}}
"
`);
});