Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lolmaus/d9ba00742fea4ab853b447785a65d4f8 to your computer and use it in GitHub Desktop.
Save lolmaus/d9ba00742fea4ab853b447785a65d4f8 to your computer and use it in GitHub Desktop.
pa
import Controller from '@ember/controller';
import { TrackedArray } from 'tracked-built-ins';
import { action } from '@ember/object';
export default class ApplicationController extends Controller {
appName = 'particial application';
values = new TrackedArray([0, 1, 2, 3, 4, 'omg']);
@action handleInput(event) {
this.values[0] = event.target.value;
console.log(this.values)
}
@action crappyHandleInput(index) {
console.log('first call')
this.values[index] = event.target.value;
console.log('second call');
console.log(this.values)
}
}
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.container {
display: flex;
flex-direction: column;
width: 50%;
height: 300px;
justify-content: space-around;
<h1>Welcome to {{this.appName}}</h1>
<div class="container">
<label>
working input: {{get this.values 0}}
<input value={{get this.values 0}} {{on "input" this.handleInput}} />
</label>
{{#each this.values key="@index" as |value index|}}
{{#if index}}
<label>
crappy input {{index}}: {{value}}
<input value={{value}} {{on "input" (fn this.crappyHandleInput index)}} />
</label>
{{/if}}
{{/each}}
</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",
"tracked-built-ins": "1.1.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment