Skip to content

Instantly share code, notes, and snippets.

@dusanstanojeviccs
Last active April 7, 2021 02:54
Show Gist options
  • Save dusanstanojeviccs/3bb73f987b60d19a1df9c4b45260e771 to your computer and use it in GitHub Desktop.
Save dusanstanojeviccs/3bb73f987b60d19a1df9c4b45260e771 to your computer and use it in GitHub Desktop.
Demo
import Component from '@ember/component';
import {action} from '@ember/object';
export default class extends Component {
@action
change() {
this.set("name", "Dux");
}
}
import Component from '@glimmer/component';
import { action } from '@ember/object';
import { computed, set } from '@ember/object';
export default class extends Component {
static keys = ["a1"]
@computed("args.name")
get niceName() {
return this.args.name;
}
@action
change() {
console.log(this.args.name);
set(this.args, "name", "runspired");
}
}
import Component from '@ember/component';
export default class extends Component {
}
import Controller from '@ember/controller';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
}
import { helper } from '@ember/component/helper';
let cache = new WeakMap();
function getState(key1, key2) {
let firstCache;
if (cache.has(key1)) {
firstCache = cache.get(key1);
} else {
firstCache = {};
cache.set(key1, firstCache);
}
if (firstCache[key2]) {
return firstCache[key2];
} else {
let obj = {};
firstCache[key2] = obj;
return obj;
}
}
export default helper(function cacheHelper(params/*, hash*/) {
return getState(...params);
});
<h1>Welcome to {{this.appName}}</h1>
<br>
<br>
{{child-component name=name}}
{{reg-component name=name}}
<GlimComponent @name={{name}}/>
<br>
<br>
<a {{action "change"}}> Click me to change the value(child) :{{name}}</a>
<div>---- Glimer start ----</div>
{{child-component name=@name}}
<a {{action "change"}}> Click me to change the value(glim) :{{@name}}</a>
{{log args.cacheFor}}
{{#let (cache-helper this @name) as |cache|}}
{{cache.name}}
<Input @value={{cache.name}} />
{{/let}}
<div>---- Glimer start ----</div>
{
"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