Skip to content

Instantly share code, notes, and snippets.

View freshcutdevelopment's full-sized avatar

Sean Hunter freshcutdevelopment

View GitHub Profile
@freshcutdevelopment
freshcutdevelopment / list-group.js
Last active September 29, 2017 23:35
List group - Blog
import {bindable, processContent} from 'aurelia-templating';
import {FEATURE} from 'aurelia-pal';
//This custom attribute was created by Jeremy Danyow as a part of this
//stackoverflow answer https://stackoverflow.com/questions/43306744/using-custom-element-content-as-item-template/43325889#43325889
@processContent(makePartReplacementFromContent)
export class ListGroup {
@bindable itemsSource = null;
@bindable defaultValue = model => "";
}
@freshcutdevelopment
freshcutdevelopment / app.html
Last active December 19, 2019 06:58
Aurelia Gist - Creating a templated list
<template>
<require from="style.css"></require>
<require from="list-group"></require>
<require from="pokemon.html"></require>
<section>
<h1>${message}</h1>
<hr/>
<h3>custom template</h3>
@freshcutdevelopment
freshcutdevelopment / alerter-inline.js
Last active September 23, 2017 07:09
Overriding Aurelia's conventions - @useview
import {inlineView} from 'aurelia-framework';
@inlineView(`<template>
<button type="button" class="btn btn-outline-success"
click.delegate="showAlert()">Success
</button>
</template>`)
export class AlerterInline{
showAlert(){
@freshcutdevelopment
freshcutdevelopment / app.html
Last active October 29, 2017 08:22
Aurelia Gist - Custom binding behaviors
<template>
<require from="./inspect-binding-behavior"></require>
<require from="./style.css"></require>
<section>
<h1>${message & inspect}</h1>
<hr/>
<input value.bind="message & inspect"></input>
@freshcutdevelopment
freshcutdevelopment / app.js
Created September 16, 2017 10:17
Aurelia code quality - part 6
import {EventAggregator} from 'aurelia-event-aggregator';
import {inject} from 'aurelia-framework';
@inject(EventAggregator)
export class App{
constructor(eventAggregator){
this.eventAggregator = eventAggregator;
}
@freshcutdevelopment
freshcutdevelopment / greeter.html
Created September 16, 2017 10:17
Aurelia code quality - part 6
<template>
<h2>Greetings</h2>
<hr/>
<ul>
<li repeat.for="greeting of greetings">
${greeting}
</li>
</ul>
<hr/>
<!-- add default two-way binding to a new greeting property -->
@freshcutdevelopment
freshcutdevelopment / greeter.js
Created September 16, 2017 10:16
Aurelia code quality - part 5
import {inject} from 'aurelia-framework';
import {EventAggregator} from 'aurelia-event-aggregator'; //import the EventAggregator class
import {GreeterService} from './services/greeter-service.js';
@inject(GreeterService, EventAggregator)
export class Greeter{
constructor(greeterService, eventAggregator){
this.greeterService = greeterService;
this.eventAggregator = eventAggregator;
}
@freshcutdevelopment
freshcutdevelopment / greeting-service.js
Created September 16, 2017 10:11
Aurelia code quality - part 5
export class GreetingService{
loadGreetings(){
return ['Hello', 'Welcome', 'Good tidings', 'Good morning'];
}
}
@freshcutdevelopment
freshcutdevelopment / greeter.html
Created September 16, 2017 10:11
Aurelia code quality - part 4
<template>
<h2>Greetings</h2>
<hr/>
<ul>
<li repeat.for="greeting of greetings"> <!-- loop over each greeting, rendering an li -->
${greeting} <!-- render the greeting using one-way binding -->
</li>
</ul>
</template>
@freshcutdevelopment
freshcutdevelopment / greeter.js
Created September 16, 2017 10:10
Aurelia code quality - part 3
import {inject} from 'aurelia-framework';
import {GreeterService} from './services/greeter-service.js';
@inject(GreeterService)
export class Greeter{
constructor(greeterService){
this.greeterService = greeterService;
}
attached(){ //called when the greeter component is attached to the DOM
this.greetings = this.greeterService.loadGreetings();