Skip to content

Instantly share code, notes, and snippets.

@bigopon
Last active December 24, 2025 03:25
Show Gist options
  • Select an option

  • Save bigopon/43495e4c30d304b065c79c5318568388 to your computer and use it in GitHub Desktop.

Select an option

Save bigopon/43495e4c30d304b065c79c5318568388 to your computer and use it in GitHub Desktop.
v1 factory injection
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Dumber Gist</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<base href="/">
</head>
<!--
Dumber gist uses dumber bundler, the default bundle file
is /dist/entry-bundle.js.
The starting module is pointed to aurelia-bootstrapper
(data-main attribute on script) for Aurelia,
The aurelia bootstrapper then loads up user module "main"
(aurelia-app attribute on <body>) which is your src/main.js.
-->
<body aurelia-app="main">
<script src="/dist/entry-bundle.js" data-main="aurelia-bootstrapper"></script>
</body>
</html>
{
"dependencies": {
"aurelia-bootstrapper": "latest"
}
}
<template>
<!-- Try to create a css/scss/sass/less file then require it here -->
<h1>${message}</h1>
<button click.trigger="build()">Build</button>
<div>Factory 1:
${obj.id} -- ${obj.value}
</div>
<div>Factory 2:
${obj2.id} -- ${obj2.value}
</div>
</template>
import { Factory } from 'aurelia-framework';
import { MyFactory } from './factorie';
export class App {
static inject = ['ItbFactory'];
message = 'Hello Aurelia!';
constructor(myFactoryFactory) {
this.factory = myFactoryFactory(500, 10000);
this.factory2 = myFactoryFactory();
}
build() {
this.obj = this.factory.build()
this.obj2 = this.factory2.build();
}
}
export class MyFactory {
constructor(id = 0, value = 1000) {
this.id = id;
this.value = value;
}
build() {
return { id: this.id++, value: this.value++ }
}
}
import { Factory } from 'aurelia-framework';
import { MyFactory } from './factorie';
export function configure(aurelia) {
aurelia.container.registerResolver('ItbFactory', Factory.of(MyFactory));
aurelia.use
.standardConfiguration()
.developmentLogging('info');
aurelia.start().then(() => aurelia.setRoot());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment