Skip to content

Instantly share code, notes, and snippets.

@chriskrycho
Created February 5, 2021 21:56
Show Gist options
  • Select an option

  • Save chriskrycho/016111db167ce147ba3ecd523d21b5eb to your computer and use it in GitHub Desktop.

Select an option

Save chriskrycho/016111db167ce147ba3ecd523d21b5eb to your computer and use it in GitHub Desktop.
hash
<p>Same? {{this.isEq}}</p>
<p>(rendered: @foo.a = "{{@foo.a}}", @foo.b = "{{@foo.b}}")</p>
import Component from '@glimmer/component';
export default class HashExample extends Component {
prev = null;
get isEq() {
if (this.prev == null) {
this.prev = this.args.foo;
return "need to set a value: nothing to compare initially";
}
return this.prev === this.args.foo;
}
}
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
export default class ApplicationController extends Controller {
@tracked a = '';
@tracked b = '';
set = (key, { target: { value } }) => {
this[key] = value;
}
}
<HashExample @foo={{hash a=this.a b=this.b}} />
<label>a (currently "{{this.a}}"): <input value={{this.a}} {{on "input" (fn this.set "a")}} /></label>
<label>b (currently "{{this.b}}"): <input value={{this.b}} {{on "input" (fn this.set "b")}} /></label>
{
"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