Skip to content

Instantly share code, notes, and snippets.

@cehoffman
Last active April 23, 2016 12:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save cehoffman/16c4ad2dcb10368292ba0dd69dccbcd1 to your computer and use it in GitHub Desktop.
Save cehoffman/16c4ad2dcb10368292ba0dd69dccbcd1 to your computer and use it in GitHub Desktop.
computedFrom Set
<template>
<input type="checkbox" change.trigger="updateCheck('second', $event.srcElement.checked)">
<input type="checkbox" change.trigger="updateCheck('first', $event.srcElement.checked)">
<div>${anyChecked ? 'Some Checked' : 'None Checked'}</div>
</template>
import {computedFrom} from 'aurelia-framework';
export class App {
isChecked = new Set()
@computedFrom('isChecked')
get anyChecked() {
console.log('Calculating any Checked', this.isChecked)
return Boolean(this.isChecked.size);
}
updateCheck(prop, state) {
console.log('Updating check state', prop, state);
state ? this.isChecked.add(prop) : this.isChecked.delete(prop);
}
}
<!doctype html>
<html>
<head>
<title>Aurelia</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body aurelia-app>
<h1>Loading...</h1>
<script src="https://cdn.rawgit.com/jdanyow/aurelia-bundle/v1.0.3/jspm_packages/system.js"></script>
<script src="https://cdn.rawgit.com/jdanyow/aurelia-bundle/v1.0.3/config.js"></script>
<script>
System.import('aurelia-bootstrapper');
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment