Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chancancode/1390a8f5eefe3b9ce755944bf989afcc to your computer and use it in GitHub Desktop.
Save chancancode/1390a8f5eefe3b9ce755944bf989afcc to your computer and use it in GitHub Desktop.
New Twiddle
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
export default class ApplicationController extends Controller {
queryParams = ['myArray'];
// The default value being an array is important. Changing this
// to anything else fixes the problem.
@tracked myArray = [];
}
{{!--
Adding @query={{hash myArray=(array "non" "empty")}} fixes the issue.
However, adding @query={{hash}} or @query={{hash myArray=(array)}} does not.
--}}
<LinkTo @route="application">
a link that uses the QP's default array value, click to trigger bug
</LinkTo>
<br>
{{!--
Accessing the QP-backed tracked property a second time is required.
It can be passed to a helper or just rendered like this. If using helpers,
it doesn't matter if the value is used inside the helper or not.
Removing this access fixes the issue.
--}}
{{this.myArray}}
<br>
{{!--
Clicking the link is unimportant. The issue happens on any subsequent
re-render. The following is unrelated to the reproduction, except to give
some other means to trigger a re-render.
--}}
{{input value=this.value}}
<br>
{{this.value}}
{
"version": "0.17.1",
"EmberENV": {
"FEATURES": {},
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false,
"_APPLICATION_TEMPLATE_WRAPPER": true,
"_JQUERY_INTEGRATION": true
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js",
"ember": "3.18.1",
"ember-template-compiler": "3.18.1",
"ember-testing": "3.18.1"
},
"addons": {
"@glimmer/component": "1.0.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment