Skip to content

Instantly share code, notes, and snippets.

@rondale-sc
Created February 4, 2021 19:40
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 rondale-sc/44159578bba9a3915ba440c89caccfa7 to your computer and use it in GitHub Desktop.
Save rondale-sc/44159578bba9a3915ba440c89caccfa7 to your computer and use it in GitHub Desktop.
target-caching-without-bug
import Component from '@glimmer/component';
export default class extends Component {
}
import Controller from '@ember/controller';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
import { guidFor } from '@ember/object/internals';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
@tracked someObject;
constructor(...args) {
super(...args);
this.updateSomeObject();
}
@action
updateSomeObject() {
let klass = Ember.Object.extend({
myGuid: tracked(),
})
this.someObject = klass.create({
actions: {
bar() { this.myGuid = guidFor(this); }
}
});
}
}
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.myGuid {
animation: fadeIn ease 3s;
}
@keyframes fadeIn {
0% {opacity:0;}
100% {opacity:1;}
}
<MyComponent @bar={{action 'bar' target=someObject}}/>
<br>
<br>
Guid For: <span class="myGuid">{{this.someObject.myGuid}}</span>
<br>
<br>
<button {{action 'updateSomeObject'}}>Update the target</button>
<button {{on "click" @bar }}>Foo!</button>
{
"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